changeset 291:3569d31705b6

document
author kono@localhost.localdomain
date Fri, 05 Jun 2009 18:16:31 +0900
parents 82219f78083a
children 395221bba7a0 9f4f99d459aa
files Document/document/html/Ball_8h-source.html Document/document/html/BufferManager_8cc-source.html Document/document/html/BufferManager_8h-source.html Document/document/html/Button_8h-source.html Document/document/html/Camera_8h-source.html Document/document/html/CellBufferManager_8cc-source.html Document/document/html/CellBufferManager_8h-source.html Document/document/html/CellDmaManager_8cc-source.html Document/document/html/CellDmaManager_8h-source.html Document/document/html/CellHTaskInfo_8cc-source.html Document/document/html/CellHTaskInfo_8h-source.html Document/document/html/CellScheduler_8cc-source.html Document/document/html/CellScheduler_8h-source.html Document/document/html/CellTaskInfo_8h-source.html Document/document/html/CellTaskListInfo_8cc-source.html Document/document/html/CellTaskListInfo_8h-source.html Document/document/html/CellTaskManagerImpl_8cc-source.html Document/document/html/CellTaskManagerImpl_8h-source.html Document/document/html/Cell_2spe_2SchedExit_8cc-source.html Document/document/html/Cell_2spe_2SchedMail_8cc-source.html Document/document/html/Cell_2spe_2SchedNop2Ready_8cc-source.html Document/document/html/Cell_2spe_2SchedNop_8cc-source.html Document/document/html/Cell_2spe_2SchedTaskList_8cc-source.html Document/document/html/Cell_2spe_2SchedTask_8cc-source.html Document/document/html/Cell_2spe_2Scheduler_8cc-source.html Document/document/html/Cell_2spe_2TaskGroup_8cc-source.html Document/document/html/Cell_2spe_2TaskList_8cc-source.html Document/document/html/Cell_2spe_2TaskQueue_8cc-source.html Document/document/html/Cell_2spe_2Task_8cc-source.html Document/document/html/Cell_2spe_2main_8cc-source.html Document/document/html/CreatePolygonFromSceneGraph_8h-source.html Document/document/html/CreatePolygonPack_8h-source.html Document/document/html/DmaBuffer_8cc-source.html Document/document/html/DmaBuffer_8h-source.html Document/document/html/DmaManager_8h-source.html Document/document/html/FifoDmaManager_8cc-source.html Document/document/html/FifoDmaManager_8h-source.html Document/document/html/FifoTaskManagerImpl_8cc-source.html Document/document/html/FifoTaskManagerImpl_8h-source.html Document/document/html/Finish_8cc-source.html Document/document/html/Finish_8h-source.html Document/document/html/HTaskInfo_8cc-source.html Document/document/html/HTaskInfo_8h-source.html Document/document/html/HTask_8cc-source.html Document/document/html/HTask_8h-source.html Document/document/html/Joystick_8h-source.html Document/document/html/Keyboard_8h-source.html Document/document/html/ListData_8h-source.html Document/document/html/LongCube_8h-source.html Document/document/html/MailManager_8cc-source.html Document/document/html/MailManager_8h-source.html Document/document/html/MainScheduler_8cc-source.html Document/document/html/MainScheduler_8h-source.html Document/document/html/Pad_8h-source.html Document/document/html/PpeScheduler_8cc-source.html Document/document/html/PpeScheduler_8h-source.html Document/document/html/Random_8cc-source.html Document/document/html/Random_8h-source.html Document/document/html/SGList_8h-source.html Document/document/html/SceneGraphArray_8h-source.html Document/document/html/SceneGraphIterator_8h-source.html Document/document/html/SceneGraphRoot_8h-source.html Document/document/html/SceneGraph_8h-source.html Document/document/html/SchedExit_8h-source.html Document/document/html/SchedMail_8h-source.html Document/document/html/SchedNop2Ready_8h-source.html Document/document/html/SchedNop_8h-source.html Document/document/html/SchedTaskBase_8h-source.html Document/document/html/SchedTaskList_8h-source.html Document/document/html/SchedTask_8h-source.html Document/document/html/Scheduler_8h-source.html Document/document/html/SpanPackList_8h-source.html Document/document/html/SpeThreads_8cc-source.html Document/document/html/SpeThreads_8h-source.html Document/document/html/SpuDraw_8h-source.html Document/document/html/SpuSpan_8h-source.html Document/document/html/Start_8cc-source.html Document/document/html/Start_8h-source.html Document/document/html/SymTable_8cc-source.html Document/document/html/SymTable_8h-source.html Document/document/html/SysTask_8h-source.html Document/document/html/Tapestry_8h-source.html Document/document/html/TaskGroup_8h-source.html Document/document/html/TaskListInfo_8cc-source.html Document/document/html/TaskListInfo_8h-source.html Document/document/html/TaskList_8h-source.html Document/document/html/TaskManagerImpl_8cc-source.html Document/document/html/TaskManagerImpl_8h-source.html Document/document/html/TaskManager_8cc-source.html Document/document/html/TaskManager_8h-source.html Document/document/html/TaskQueueInfo_8cc-source.html Document/document/html/TaskQueueInfo_8h-source.html Document/document/html/TaskQueue_8h-source.html Document/document/html/Task_8h-source.html Document/document/html/TextureHash_8h-source.html Document/document/html/Venus_8h-source.html Document/document/html/annotated.html Document/document/html/base_8h-source.html Document/document/html/blast_8h-source.html Document/document/html/boss1_8h-source.html Document/document/html/boss1__action_8h-source.html Document/document/html/bullet__action_8h-source.html Document/document/html/camera__action_8h-source.html Document/document/html/classBufferManager-members.html Document/document/html/classBufferManager.html Document/document/html/classTileList-members.html Document/document/html/classTileList.html Document/document/html/classes.html Document/document/html/cube__split_8h-source.html Document/document/html/direction_8h-source.html Document/document/html/enemy__action_8h-source.html Document/document/html/error_8h-source.html Document/document/html/files.html Document/document/html/functions.html Document/document/html/functions_func.html Document/document/html/hash__texture_8h-source.html Document/document/html/hierarchy.html Document/document/html/hit__judge_8h-source.html Document/document/html/ieboss_8h-source.html Document/document/html/iejiki_8h-source.html Document/document/html/ietama_8h-source.html Document/document/html/index.html Document/document/html/kernel_2main_8cc-source.html Document/document/html/kernel_2ppe_2TaskList_8cc-source.html Document/document/html/kernel_2ppe_2TaskQueue_8cc-source.html Document/document/html/kernel_2ppe_2Task_8cc-source.html Document/document/html/kernel_2schedule_2SchedExit_8cc-source.html Document/document/html/kernel_2schedule_2SchedMail_8cc-source.html Document/document/html/kernel_2schedule_2SchedNop2Ready_8cc-source.html Document/document/html/kernel_2schedule_2SchedNop_8cc-source.html Document/document/html/kernel_2schedule_2SchedTaskList_8cc-source.html Document/document/html/kernel_2schedule_2SchedTask_8cc-source.html Document/document/html/kernel_2schedule_2Scheduler_8cc-source.html Document/document/html/kernel_2schedule_2TaskGroup_8cc-source.html Document/document/html/p__shot_8h-source.html Document/document/html/panel__1024_8h-source.html Document/document/html/panel__2048_8h-source.html Document/document/html/panel__512_8h-source.html Document/document/html/player_8h-source.html Document/document/html/player__action_8h-source.html Document/document/html/simple__pack_2cube_8h-source.html Document/document/html/simple__pack_2demonstration_8h-source.html Document/document/html/simple__pack_2pad_8h-source.html Document/document/html/simple__pack_2polygon_8h-source.html Document/document/html/simple__pack_2polygon__pack_8h-source.html Document/document/html/simple__pack_2scene_8h-source.html Document/document/html/simple__pack_2scene__graph__pack_8h-source.html Document/document/html/simple__pack_2sys_8h-source.html Document/document/html/simple__pack_2texture_8h-source.html Document/document/html/simple__pack_2triangle_8h-source.html Document/document/html/simple__pack_2vertex_8h-source.html Document/document/html/simple__pack_2viewer_8h-source.html Document/document/html/simple__pack_2xml_8h-source.html Document/document/html/simple__render_2Func_8h-source.html Document/document/html/simple__render_2SpanC_8h-source.html Document/document/html/simple__render_2SpanPack_8h-source.html Document/document/html/simple__render_2Span_8h-source.html Document/document/html/simple__render_2cube_8h-source.html Document/document/html/simple__render_2cube__big_8h-source.html Document/document/html/simple__render_2demonstration_8h-source.html Document/document/html/simple__render_2fb_8h-source.html Document/document/html/simple__render_2pad_8h-source.html Document/document/html/simple__render_2polygon_8h-source.html Document/document/html/simple__render_2polygon__pack_8h-source.html Document/document/html/simple__render_2scene_8h-source.html Document/document/html/simple__render_2scene__graph__pack_8h-source.html Document/document/html/simple__render_2spe_2Load__Texture_8h-source.html Document/document/html/simple__render_2sys_8h-source.html Document/document/html/simple__render_2test_2LoadTexture_2polygon_8h-source.html Document/document/html/simple__render_2test_2LoadTexture_2spe_2Load__Texture_8h-source.html Document/document/html/simple__render_2test_2LoadTexture_2viewer_8h-source.html Document/document/html/simple__render_2texture_8h-source.html Document/document/html/simple__render_2triangle_8h-source.html Document/document/html/simple__render_2vertex_8h-source.html Document/document/html/simple__render_2viewer_8h-source.html Document/document/html/simple__render_2viewer__types_8h-source.html Document/document/html/simple__render_2xml_8h-source.html Document/document/html/span_8h-source.html Document/document/html/span__pack_8h-source.html Document/document/html/spe_2CreatePolygon_8h-source.html Document/document/html/spe_2CreateSpan_8h-source.html Document/document/html/spe_2DrawBack_8h-source.html Document/document/html/spe_2DrawSpanRenew_8h-source.html Document/document/html/spe_2DrawSpan_8h-source.html Document/document/html/spe_2Set__Texture_8h-source.html Document/document/html/spe_2TileHash_8h-source.html Document/document/html/sphere_8h-source.html Document/document/html/sphere__big_8h-source.html Document/document/html/spu__span_8h-source.html Document/document/html/structtexture__block.html Document/document/html/systask__register_8cc-source.html Document/document/html/task_2CreatePolygon_8h-source.html Document/document/html/task_2CreateSpan_8h-source.html Document/document/html/task_2DrawBack_8h-source.html Document/document/html/task_2DrawSpanRenew_8h-source.html Document/document/html/task_2DrawSpan_8h-source.html Document/document/html/task_2Set__Texture_8h-source.html Document/document/html/task_2TileHash_8h-source.html Document/document/html/test__render_2Func_8h-source.html Document/document/html/test__render_2SpanC_8h-source.html Document/document/html/test__render_2SpanPack_8h-source.html Document/document/html/test__render_2Span_8h-source.html Document/document/html/test__render_2demonstration_8h-source.html Document/document/html/test__render_2fb_8h-source.html Document/document/html/test__render_2polygon_8h-source.html Document/document/html/test__render_2polygon__pack_8h-source.html Document/document/html/test__render_2scene_8h-source.html Document/document/html/test__render_2scene__graph__pack_8h-source.html Document/document/html/test__render_2spe_2Load__Texture_8h-source.html Document/document/html/test__render_2spe_2texture_8h-source.html Document/document/html/test__render_2sys_8h-source.html Document/document/html/test__render_2task_2Load__Texture_8h-source.html Document/document/html/test__render_2task_2texture_8h-source.html Document/document/html/test__render_2texture_8h-source.html Document/document/html/test__render_2triangle_8h-source.html Document/document/html/test__render_2vertex_8h-source.html Document/document/html/test__render_2viewer_8h-source.html Document/document/html/test__render_2viewer__types_8h-source.html Document/document/html/test__render_2xml_8h-source.html Document/document/html/test__render_2xml__file_2cube_8h-source.html Document/document/html/test__render_2xml__file_2cube__big_8h-source.html Document/document/html/types_8h-source.html Document/document/html/universe_8h-source.html Document/document/html/viewerFB_8h-source.html Document/document/html/viewerSDL_8h-source.html Document/document/latex/annotated.tex Document/document/latex/classBufferManager.tex Document/document/latex/classTileList.tex Document/document/latex/doxygen.sty Document/document/latex/hierarchy.tex Document/document/latex/refman.tex Document/document/latex/structtexture__block.tex TaskManager/Cell/CellTaskManagerImpl.cc TaskManager/Doxyfile example/many_task/Makefile.def example/many_task/spe/Makefile example/many_task/spe/spe-main.cc include/TaskManager/BufferManager.h include/TaskManager/Scheduler.h
diffstat 239 files changed, 6200 insertions(+), 384 deletions(-) [+]
line wrap: on
line diff
--- a/Document/document/html/Ball_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Ball_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>Ball.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define Ball scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:05 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/BufferManager_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: BufferManager.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>BufferManager.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "BufferManager.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 BufferManager::BufferManager(<span class="keywordtype">int</span> num) : machineNum(num) {}
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 BufferManager::~BufferManager(<span class="keywordtype">void</span>) { finish(); }
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 <span class="keywordtype">void</span>
+<a name="l00010"></a>00010 BufferManager::init(<span class="keywordtype">void</span>)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012     taskListImpl  = <span class="keyword">new</span> TaskListInfo;
+<a name="l00013"></a>00013     taskQueueImpl = <span class="keyword">new</span> TaskQueueInfo;
+<a name="l00014"></a>00014     htaskImpl     = <span class="keyword">new</span> HTaskInfo;
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016     taskListImpl-&gt;init(machineNum*2);
+<a name="l00017"></a>00017     taskQueueImpl-&gt;init(TASK_MAX_SIZE*4);
+<a name="l00018"></a>00018     htaskImpl-&gt;init(TASK_MAX_SIZE*2);
+<a name="l00019"></a>00019 }
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 TaskListPtr
+<a name="l00022"></a>00022 BufferManager::create_taskList(<span class="keywordtype">void</span>)
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024     <span class="keywordflow">return</span> taskListImpl-&gt;create();
+<a name="l00025"></a>00025 }
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027 TaskQueuePtr
+<a name="l00028"></a>00028 BufferManager::create_taskQueue(HTaskPtr task)
+<a name="l00029"></a>00029 {
+<a name="l00030"></a>00030     <span class="keywordflow">return</span> taskQueueImpl-&gt;create(task);
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 HTaskPtr
+<a name="l00034"></a>00034 BufferManager::create_task(<span class="keywordtype">int</span> cmd)
+<a name="l00035"></a>00035 {
+<a name="l00036"></a>00036     <span class="keywordflow">return</span> htaskImpl-&gt;create(cmd);
+<a name="l00037"></a>00037 }
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039 <span class="keywordtype">void</span>
+<a name="l00040"></a>00040 BufferManager::free_taskList(TaskListPtr q)
+<a name="l00041"></a>00041 {
+<a name="l00042"></a>00042     taskListImpl-&gt;free(q);
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="keywordtype">void</span>
+<a name="l00046"></a>00046 BufferManager::free_taskQueue(TaskQueuePtr q)
+<a name="l00047"></a>00047 {
+<a name="l00048"></a>00048     taskQueueImpl-&gt;free(q);
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051 <span class="keywordtype">void</span>
+<a name="l00052"></a>00052 BufferManager::free_task(HTaskPtr task)
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054     htaskImpl-&gt;free(task);
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057 <span class="keywordtype">void</span>
+<a name="l00058"></a>00058 BufferManager::finish(<span class="keywordtype">void</span>)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060     <span class="keyword">delete</span> taskListImpl;
+<a name="l00061"></a>00061     <span class="keyword">delete</span> taskQueueImpl;
+<a name="l00062"></a>00062     <span class="keyword">delete</span> htaskImpl;
+<a name="l00063"></a>00063 }
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065 TaskListPtr
+<a name="l00066"></a>00066 BufferManager::clear_taskList(TaskListPtr list)
+<a name="l00067"></a>00067 {
+<a name="l00068"></a>00068     TaskListPtr p, p1;
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070     list-&gt;length = 0;
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072     p = list-&gt;next;
+<a name="l00073"></a>00073     <span class="keywordflow">while</span> (p) {
+<a name="l00074"></a>00074         p1 = p;
+<a name="l00075"></a>00075         p = p-&gt;next;
+<a name="l00076"></a>00076         taskListImpl-&gt;free(p1);
+<a name="l00077"></a>00077     }
+<a name="l00078"></a>00078 
+<a name="l00079"></a>00079     list-&gt;next = NULL;
+<a name="l00080"></a>00080     <span class="keywordflow">return</span> list;
+<a name="l00081"></a>00081 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/BufferManager_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/BufferManager_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -37,43 +37,43 @@
 <a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#  include "HTaskInfo.h"</span>
 <a name="l00018"></a>00018 <span class="preprocessor">#endif</span>
 <a name="l00019"></a>00019 <span class="preprocessor"></span>
-<a name="l00020"></a>00020 <span class="keyword">class </span>BufferManager {
-<a name="l00021"></a>00021 <span class="keyword">public</span>:
-<a name="l00022"></a>00022     <span class="comment">/* constructor */</span>
-<a name="l00023"></a>00023     BufferManager(<span class="keywordtype">int</span> num = 1);
-<a name="l00024"></a>00024     <span class="keyword">virtual</span> ~BufferManager(<span class="keywordtype">void</span>);
-<a name="l00025"></a>00025     
-<a name="l00026"></a>00026     <span class="comment">/* variables */</span>
-<a name="l00027"></a>00027     TaskListInfo *taskListImpl;
-<a name="l00028"></a>00028     TaskQueueInfo *taskQueueImpl;
-<a name="l00029"></a>00029     HTaskInfo *htaskImpl;
-<a name="l00030"></a>00030 
-<a name="l00031"></a>00031     <span class="keywordtype">int</span> machineNum;
-<a name="l00032"></a>00032 
-<a name="l00033"></a>00033     <span class="comment">/* function */</span>
-<a name="l00034"></a>00034     <span class="keyword">virtual</span> <span class="keywordtype">void</span> init(<span class="keywordtype">void</span>);
+<a name="l00025"></a><a class="code" href="classBufferManager.html">00025</a> <span class="keyword">class </span><a class="code" href="classBufferManager.html">BufferManager</a> {
+<a name="l00026"></a>00026 <span class="keyword">public</span>:
+<a name="l00027"></a>00027     <span class="comment">/* constructor */</span>
+<a name="l00028"></a>00028     <a class="code" href="classBufferManager.html">BufferManager</a>(<span class="keywordtype">int</span> num = 1);
+<a name="l00029"></a>00029     <span class="keyword">virtual</span> ~<a class="code" href="classBufferManager.html">BufferManager</a>(<span class="keywordtype">void</span>);
+<a name="l00030"></a>00030     
+<a name="l00031"></a>00031     <span class="comment">/* variables */</span>
+<a name="l00032"></a>00032     TaskListInfo *taskListImpl;
+<a name="l00033"></a>00033     TaskQueueInfo *taskQueueImpl;
+<a name="l00034"></a>00034     HTaskInfo *htaskImpl;
 <a name="l00035"></a>00035 
-<a name="l00036"></a>00036     <span class="comment">// TaskList</span>
-<a name="l00037"></a>00037     TaskListPtr create_taskList(<span class="keywordtype">void</span>);
-<a name="l00038"></a>00038     <span class="keywordtype">void</span> free_taskList(TaskListPtr);
-<a name="l00039"></a>00039     TaskListPtr clear_taskList(TaskListPtr);
+<a name="l00036"></a>00036     <span class="keywordtype">int</span> machineNum;
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038     <span class="comment">/* function */</span>
+<a name="l00039"></a>00039     <span class="keyword">virtual</span> <span class="keywordtype">void</span> init(<span class="keywordtype">void</span>);
 <a name="l00040"></a>00040 
-<a name="l00041"></a>00041     <span class="comment">// TaskQueue</span>
-<a name="l00042"></a>00042     TaskQueuePtr create_taskQueue(HTaskPtr);
-<a name="l00043"></a>00043     <span class="keywordtype">void</span> free_taskQueue(TaskQueuePtr);
-<a name="l00044"></a>00044 
-<a name="l00045"></a>00045     <span class="comment">// HTask</span>
-<a name="l00046"></a>00046     HTaskPtr create_task(<span class="keywordtype">int</span> cmd);
-<a name="l00047"></a>00047     <span class="keywordtype">void</span> free_task(HTaskPtr);
-<a name="l00048"></a>00048 
+<a name="l00041"></a>00041     <span class="comment">// TaskList</span>
+<a name="l00042"></a>00042     TaskListPtr create_taskList(<span class="keywordtype">void</span>);
+<a name="l00043"></a>00043     <span class="keywordtype">void</span> free_taskList(TaskListPtr);
+<a name="l00044"></a>00044     TaskListPtr clear_taskList(TaskListPtr);
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046     <span class="comment">// TaskQueue</span>
+<a name="l00047"></a>00047     TaskQueuePtr create_taskQueue(HTaskPtr);
+<a name="l00048"></a>00048     <span class="keywordtype">void</span> free_taskQueue(TaskQueuePtr);
 <a name="l00049"></a>00049 
-<a name="l00050"></a>00050     <span class="keywordtype">void</span> finish(<span class="keywordtype">void</span>);
-<a name="l00051"></a>00051 <span class="keyword">private</span>:
-<a name="l00052"></a>00052 };
+<a name="l00050"></a>00050     <span class="comment">// HTask</span>
+<a name="l00051"></a>00051     HTaskPtr create_task(<span class="keywordtype">int</span> cmd);
+<a name="l00052"></a>00052     <span class="keywordtype">void</span> free_task(HTaskPtr);
 <a name="l00053"></a>00053 
-<a name="l00054"></a>00054 <span class="preprocessor">#endif</span>
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     <span class="keywordtype">void</span> finish(<span class="keywordtype">void</span>);
+<a name="l00056"></a>00056 <span class="keyword">private</span>:
+<a name="l00057"></a>00057 };
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Button_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Button_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -38,7 +38,7 @@
 <a name="l00018"></a>00018 
 <a name="l00019"></a>00019 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Camera_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Camera_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -52,7 +52,7 @@
 <a name="l00032"></a>00032 
 <a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/CellBufferManager_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: CellBufferManager.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>CellBufferManager.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "CellBufferManager.h"</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "CellTaskListInfo.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "CellHTaskInfo.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 <span class="keywordtype">void</span>
+<a name="l00006"></a>00006 CellBufferManager::init(<span class="keywordtype">void</span>)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008     BufferManager::init();
+<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="keyword">delete</span> taskListImpl;
+<a name="l00013"></a>00013     taskListImpl = <span class="keyword">new</span> CellTaskListInfo;
+<a name="l00014"></a>00014     taskListImpl-&gt;init(machineNum*2);
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016     <span class="keyword">delete</span> htaskImpl;
+<a name="l00017"></a>00017     htaskImpl = <span class="keyword">new</span> CellHTaskInfo;
+<a name="l00018"></a>00018     htaskImpl-&gt;init(TASK_MAX_SIZE*2);
+<a name="l00019"></a>00019 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/CellBufferManager_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CellBufferManager_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -29,9 +29,9 @@
 <a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#  include "BufferManager.h"</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="keyword">class </span>CellBufferManager : <span class="keyword">public</span> BufferManager {
+<a name="l00012"></a>00012 <span class="keyword">class </span>CellBufferManager : <span class="keyword">public</span> <a class="code" href="classBufferManager.html">BufferManager</a> {
 <a name="l00013"></a>00013 <span class="keyword">public</span>:
-<a name="l00014"></a>00014     CellBufferManager(<span class="keywordtype">int</span> num) :BufferManager(num){}
+<a name="l00014"></a>00014     CellBufferManager(<span class="keywordtype">int</span> num) :<a class="code" href="classBufferManager.html">BufferManager</a>(num){}
 <a name="l00015"></a>00015 
 <a name="l00016"></a>00016     BASE_NEW_DELETE(CellBufferManager);
 <a name="l00017"></a>00017 
@@ -40,7 +40,7 @@
 <a name="l00020"></a>00020 
 <a name="l00021"></a>00021 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/CellDmaManager_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,110 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: CellDmaManager.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>CellDmaManager.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "CellDmaManager.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00013"></a>00013 <span class="keywordtype">void</span>
+<a name="l00014"></a>00014 CellDmaManager::dma_load(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask)
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016     <span class="keywordflow">if</span> (size == 0) return ;
+<a name="l00017"></a>00017     mfc_get((<span class="keyword">volatile</span> <span class="keywordtype">void</span> *)buf, addr, size, mask, 0, 0);
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 
+<a name="l00028"></a>00028 <span class="keywordtype">void</span>
+<a name="l00029"></a>00029 CellDmaManager::dma_store(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask)
+<a name="l00030"></a>00030 {
+<a name="l00031"></a>00031     <span class="keywordflow">if</span> (size == 0) return ;
+<a name="l00032"></a>00032     mfc_put((<span class="keyword">volatile</span> <span class="keywordtype">void</span> *)buf, addr, size, mask, 0, 0);
+<a name="l00033"></a>00033 }
+<a name="l00034"></a>00034 
+<a name="l00040"></a>00040 <span class="keywordtype">void</span>
+<a name="l00041"></a>00041 CellDmaManager::start_dmawait_profile()
+<a name="l00042"></a>00042 {
+<a name="l00043"></a>00043     wait_time = spu_readch(SPU_RdDec); 
+<a name="l00044"></a>00044     global_busy_time += busy_time - wait_time;
+<a name="l00045"></a>00045     spu_writech(SPU_WrDec, 0xffffffff);
+<a name="l00046"></a>00046 }
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048 <span class="keywordtype">void</span>
+<a name="l00049"></a>00049 CellDmaManager::end_dmawait_profile()
+<a name="l00050"></a>00050 {
+<a name="l00051"></a>00051     wait_time = spu_readch(SPU_RdDec);
+<a name="l00052"></a>00052     global_wait_time += 0xffffffff - wait_time;
+<a name="l00053"></a>00053     busy_time = wait_time;
+<a name="l00054"></a>00054 }
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056 <span class="keywordtype">void</span>
+<a name="l00057"></a>00057 CellDmaManager::show_dma_wait(<span class="keywordtype">int</span> cpu)
+<a name="l00058"></a>00058 {
+<a name="l00059"></a>00059 
+<a name="l00060"></a>00060   printf(<span class="stringliteral">"spu%d: global_wait_time = %lld\n"</span>,cpu, global_wait_time);
+<a name="l00061"></a>00061   printf(<span class="stringliteral">"spu%d: global_busy_time = %lld\n"</span>,cpu, global_busy_time);
+<a name="l00062"></a>00062   printf(<span class="stringliteral">"spu%d: busy_ratio = %g%%\n"</span>,cpu, 
+<a name="l00063"></a>00063          ((<span class="keywordtype">double</span>)global_busy_time)/((<span class="keywordtype">double</span>)(global_busy_time+global_wait_time))*100.0);
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066 <span class="keywordtype">void</span>
+<a name="l00067"></a>00067 CellDmaManager::dma_wait(uint32 mask)
+<a name="l00068"></a>00068 {
+<a name="l00069"></a>00069 <span class="preprocessor">#ifdef SPU_PROFILE</span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span>    start_dmawait_profile();
+<a name="l00071"></a>00071 <span class="preprocessor">#endif</span>
+<a name="l00072"></a>00072 <span class="preprocessor"></span>    mfc_write_tag_mask(1 &lt;&lt; mask);
+<a name="l00073"></a>00073     mfc_write_tag_update_all();
+<a name="l00074"></a>00074     mfc_read_tag_status();
+<a name="l00075"></a>00075 <span class="preprocessor">#ifdef SPU_PROFILE</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span>    end_dmawait_profile();
+<a name="l00077"></a>00077 <span class="preprocessor">#endif</span>
+<a name="l00078"></a>00078 <span class="preprocessor"></span>}
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080 <span class="keywordtype">void</span>
+<a name="l00081"></a>00081 CellDmaManager::mail_write(uint32 data)
+<a name="l00082"></a>00082 {
+<a name="l00083"></a>00083     spu_write_out_mbox(data);
+<a name="l00084"></a>00084 }
+<a name="l00085"></a>00085 
+<a name="l00086"></a>00086 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
+<a name="l00087"></a>00087 CellDmaManager::mail_read(<span class="keywordtype">void</span>)
+<a name="l00088"></a>00088 {
+<a name="l00089"></a>00089     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mail = spu_read_in_mbox();
+<a name="l00090"></a>00090     <span class="keywordflow">return</span> mail;
+<a name="l00091"></a>00091 }
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093 <span class="keywordtype">void</span>
+<a name="l00094"></a>00094 CellDmaManager::dma_loadList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096     mfc_getl(buff, 0, list-&gt;element, <span class="keyword">sizeof</span>(mfc_list_element_t)*list-&gt;length,
+<a name="l00097"></a>00097              mask, 0, 0);
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100 <span class="keywordtype">void</span>
+<a name="l00101"></a>00101 CellDmaManager::dma_storeList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00102"></a>00102 {
+<a name="l00103"></a>00103     mfc_putl(buff, 0, list-&gt;element, <span class="keyword">sizeof</span>(mfc_list_element_t)*list-&gt;length,
+<a name="l00104"></a>00104              mask, 0, 0);
+<a name="l00105"></a>00105 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/CellDmaManager_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CellDmaManager_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -62,7 +62,7 @@
 <a name="l00042"></a>00042 
 <a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/CellHTaskInfo_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: CellHTaskInfo.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>CellHTaskInfo.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "CellHTaskInfo.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 <span class="keywordtype">int</span>
+<a name="l00006"></a>00006 CellHTaskInfo::extend_pool(<span class="keywordtype">int</span> num)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008     HTaskPtr q = NULL;
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010     q = (HTaskPtr)malloc(<span class="keyword">sizeof</span>(HTask)*(num+1));
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012     <span class="keywordflow">if</span> (q == NULL) {
+<a name="l00013"></a>00013         <span class="keywordflow">return</span> -1;
+<a name="l00014"></a>00014     }
+<a name="l00015"></a>00015     q-&gt;next = htaskPool;
+<a name="l00016"></a>00016     htaskPool = q;
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018     <span class="comment">/* Connect all free queue in the pool */</span>
+<a name="l00019"></a>00019     <span class="keywordflow">for</span> (q = htaskPool + 1; --num &gt; 0; q++) {
+<a name="l00020"></a>00020         q-&gt;next = q + 1;
+<a name="l00021"></a>00021         posix_memalign((<span class="keywordtype">void</span>**)&amp;q-&gt;inData, DEFAULT_ALIGNMENT, <span class="keyword">sizeof</span>(ListData));
+<a name="l00022"></a>00022         posix_memalign((<span class="keywordtype">void</span>**)&amp;q-&gt;outData, DEFAULT_ALIGNMENT, <span class="keyword">sizeof</span>(ListData));
+<a name="l00023"></a>00023     }
+<a name="l00024"></a>00024     q-&gt;next = freeHTask;
+<a name="l00025"></a>00025     posix_memalign((<span class="keywordtype">void</span>**)&amp;q-&gt;inData, DEFAULT_ALIGNMENT, <span class="keyword">sizeof</span>(ListData));
+<a name="l00026"></a>00026     posix_memalign((<span class="keywordtype">void</span>**)&amp;q-&gt;outData, DEFAULT_ALIGNMENT, <span class="keyword">sizeof</span>(ListData));
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028     freeHTask = htaskPool + 1;
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030     <span class="keywordflow">return</span> 0;
+<a name="l00031"></a>00031 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/CellHTaskInfo_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CellHTaskInfo_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -33,7 +33,7 @@
 <a name="l00013"></a>00013 
 <a name="l00014"></a>00014 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/CellScheduler_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -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>Cerium: CellScheduler.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>CellScheduler.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;malloc.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "CellScheduler.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "CellDmaManager.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "error.h"</span>
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 <span class="comment">// 桼ץ</span>
+<a name="l00008"></a>00008 <span class="comment">// ʤɡ̯͡</span>
+<a name="l00009"></a>00009 <span class="keyword">extern</span> <span class="keywordtype">void</span> task_init(<span class="keywordtype">void</span>);
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 <span class="keywordtype">void</span>
+<a name="l00012"></a>00012 CellScheduler::init_impl(<span class="keywordtype">void</span>)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014     connector = <span class="keyword">new</span> CellDmaManager;
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016     mainMemNum = 0;
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018     task_init();
+<a name="l00019"></a>00019 }
+<a name="l00020"></a>00020 
+<a name="l00021"></a>00021 <span class="keywordtype">void</span>*
+<a name="l00022"></a>00022 CellScheduler::allocate(<span class="keywordtype">int</span> size)
+<a name="l00023"></a>00023 {
+<a name="l00024"></a>00024     <span class="keywordflow">return</span> memalign(DEFAULT_ALIGNMENT, size);
+<a name="l00025"></a>00025 }
+<a name="l00026"></a>00026 
+<a name="l00034"></a>00034 <span class="keywordtype">void</span>
+<a name="l00035"></a>00035 CellScheduler::mainMem_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size)
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037     mainMemList[id] = NULL;
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039     mainMemNum++;
+<a name="l00040"></a>00040     mail_write(MY_SPE_COMMAND_MALLOC);
+<a name="l00041"></a>00041     mail_write(<span class="keywordtype">id</span>);
+<a name="l00042"></a>00042     mail_write(size);
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="keywordtype">void</span>
+<a name="l00046"></a>00046 CellScheduler::mainMem_wait(<span class="keywordtype">void</span>)
+<a name="l00047"></a>00047 {
+<a name="l00048"></a>00048     uint32 id;
+<a name="l00049"></a>00049     uint32 addr;
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051     <span class="keywordflow">while</span> (mainMemNum &gt; 0) {
+<a name="l00052"></a>00052         <span class="keywordtype">id</span> = mail_read();
+<a name="l00053"></a>00053         addr = mail_read();
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055         mainMemList[id] = (<span class="keywordtype">void</span>*)addr;
+<a name="l00056"></a>00056         mainMemNum--;
+<a name="l00057"></a>00057     }    
+<a name="l00058"></a>00058 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/CellScheduler_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CellScheduler_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -45,7 +45,7 @@
 <a name="l00025"></a>00025 
 <a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/CellTaskInfo_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CellTaskInfo_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -41,7 +41,7 @@
 <a name="l00021"></a>00021 
 <a name="l00022"></a>00022 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/CellTaskListInfo_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: CellTaskListInfo.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>CellTaskListInfo.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "CellTaskListInfo.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 <span class="preprocessor">#define NEXT_ADDR(addr, size) \</span>
+<a name="l00006"></a>00006 <span class="preprocessor">    (TaskListPtr)((int)(addr) + (size))</span>
+<a name="l00007"></a>00007 <span class="preprocessor"></span>
+<a name="l00008"></a>00008 <span class="keywordtype">int</span>
+<a name="l00009"></a>00009 CellTaskListInfo::extend_pool(<span class="keywordtype">int</span> num)
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011     TaskListPtr q = NULL;
+<a name="l00012"></a>00012     <span class="keywordtype">int</span> unit_size;
+<a name="l00013"></a>00013     
+<a name="l00014"></a>00014     unit_size = (ROUND_UP_ALIGN(<span class="keyword">sizeof</span>(TaskList), DEFAULT_ALIGNMENT));
+<a name="l00015"></a>00015     posix_memalign((<span class="keywordtype">void</span>**)&amp;q, DEFAULT_ALIGNMENT, unit_size*(num+1));
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017     <span class="keywordflow">if</span> (q == NULL) {
+<a name="l00018"></a>00018         <span class="keywordflow">return</span> -1;
+<a name="l00019"></a>00019     }
+<a name="l00020"></a>00020     
+<a name="l00021"></a>00021     q-&gt;next = taskListPool;
+<a name="l00022"></a>00022     taskListPool = q;
+<a name="l00023"></a>00023     
+<a name="l00024"></a>00024     <span class="comment">/* Connect all free pack_list in the pool */</span>
+<a name="l00025"></a>00025     q = NEXT_ADDR(taskListPool, unit_size); <span class="comment">// q = taskListPool + 1;</span>
+<a name="l00026"></a>00026     <span class="keywordflow">for</span> (; --num &gt; 0; q = NEXT_ADDR(q, unit_size)) {
+<a name="l00027"></a>00027         q-&gt;next = NEXT_ADDR(q, unit_size); <span class="comment">// q-&gt;next = q + 1;</span>
+<a name="l00028"></a>00028     }
+<a name="l00029"></a>00029     q-&gt;next = freeTaskList;
+<a name="l00030"></a>00030     freeTaskList = NEXT_ADDR(taskListPool, unit_size);
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032     <span class="keywordflow">return</span> 0;
+<a name="l00033"></a>00033 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/CellTaskListInfo_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CellTaskListInfo_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -33,7 +33,7 @@
 <a name="l00013"></a>00013 
 <a name="l00014"></a>00014 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/CellTaskManagerImpl_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: CellTaskManagerImpl.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>CellTaskManagerImpl.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "CellTaskManagerImpl.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "CellBufferManager.h"</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include "PpeScheduler.h"</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include "types.h"</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#include "error.h"</span>
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 CellTaskManagerImpl::~CellTaskManagerImpl(<span class="keywordtype">void</span>)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012     <span class="keyword">delete</span> speThreads;
+<a name="l00013"></a>00013     <span class="keyword">delete</span> [] speTaskList;
+<a name="l00014"></a>00014     <span class="keyword">delete</span> [] speTaskList_bg;
+<a name="l00019"></a>00019     <span class="comment">// delete bufferManager;</span>
+<a name="l00020"></a>00020     <span class="keyword">delete</span> [] flag_sendTaskList;
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022     <span class="keyword">delete</span> ppeManager;
+<a name="l00023"></a>00023 }
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025 <span class="keywordtype">void</span>
+<a name="l00026"></a>00026 CellTaskManagerImpl::init(<span class="keywordtype">void</span>)
+<a name="l00027"></a>00027 {
+<a name="l00028"></a>00028     bufferManager = <span class="keyword">new</span> CellBufferManager(machineNum);
+<a name="l00029"></a>00029     bufferManager-&gt;init();
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031     speThreads = <span class="keyword">new</span> SpeThreads(machineNum);
+<a name="l00032"></a>00032     speThreads-&gt;init();
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034     speTaskList  = <span class="keyword">new</span> TaskListPtr[machineNum];
+<a name="l00035"></a>00035     speTaskList_bg  = <span class="keyword">new</span> TaskListPtr[machineNum];
+<a name="l00036"></a>00036     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; machineNum; i++) {
+<a name="l00037"></a>00037         speTaskList[i] = bufferManager-&gt;create_taskList();
+<a name="l00038"></a>00038         speTaskList_bg[i] = bufferManager-&gt;create_taskList();
+<a name="l00039"></a>00039     }
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041     flag_sendTaskList = <span class="keyword">new</span> <span class="keywordtype">int</span>[machineNum];
+<a name="l00042"></a>00042     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; machineNum; i++) {
+<a name="l00043"></a>00043         flag_sendTaskList[i] = 1;
+<a name="l00044"></a>00044     }
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046     <span class="comment">// PPE ¦δ򤹤 Manager</span>
+<a name="l00047"></a>00047     ppeManager = <span class="keyword">new</span> FifoTaskManagerImpl(machineNum);
+<a name="l00048"></a>00048     ppeManager-&gt;init(<span class="keyword">new</span> PpeScheduler, bufferManager);
+<a name="l00049"></a>00049 }
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051 <span class="keywordtype">void</span>
+<a name="l00052"></a>00052 CellTaskManagerImpl::append_activeTask(HTaskPtr task)
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054     TaskQueuePtr q;
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056     q = bufferManager-&gt;create_taskQueue(task);
+<a name="l00057"></a>00057     <span class="keywordflow">if</span> (task-&gt;cpu_type == CPU_PPE) {
+<a name="l00058"></a>00058         ppeManager-&gt;append_activeTask(task);
+<a name="l00059"></a>00059     } <span class="keywordflow">else</span> {
+<a name="l00060"></a>00060         activeTaskQueue = TaskQueue::append(activeTaskQueue, q);
+<a name="l00061"></a>00061     }
+<a name="l00062"></a>00062 }
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="comment">// SPE_ANY ꤵƤ</span>
+<a name="l00065"></a>00065 <span class="comment">// 򥤥󥯥ȤĤĸƤ֤Ȥˤ롣</span>
+<a name="l00066"></a>00066 <span class="comment">// ȤäƤ⤤ɤ</span>
+<a name="l00067"></a>00067 <span class="keywordtype">int</span> cur_anySpeid = 0;
+<a name="l00068"></a>00068 
+<a name="l00076"></a>00076 <span class="keywordtype">void</span>
+<a name="l00077"></a>00077 CellTaskManagerImpl::set_runTaskList(<span class="keywordtype">void</span>)
+<a name="l00078"></a>00078 {
+<a name="l00079"></a>00079     <span class="comment">// ...ľ</span>
+<a name="l00080"></a>00080     TaskListPtr list;
+<a name="l00081"></a>00081     TaskQueuePtr queue;
+<a name="l00082"></a>00082     TaskQueuePtr d;
+<a name="l00083"></a>00083     HTaskPtr htask;
+<a name="l00084"></a>00084     TaskPtr task;
+<a name="l00085"></a>00085     <span class="keywordtype">int</span> speid;
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087     queue = activeTaskQueue;
+<a name="l00088"></a>00088     <span class="keywordflow">if</span> (queue == NULL) {
+<a name="l00089"></a>00089         return ;
+<a name="l00090"></a>00090     }
+<a name="l00091"></a>00091  
+<a name="l00092"></a>00092     <span class="keywordflow">while</span> (queue) {
+<a name="l00093"></a>00093         htask = (HTaskPtr)queue-&gt;task;
+<a name="l00094"></a>00094         d = queue;
+<a name="l00095"></a>00095         queue = queue-&gt;next;
+<a name="l00096"></a>00096 
+<a name="l00097"></a>00097         if (htask-&gt;cpu_type == SPE_ANY) {
+<a name="l00098"></a>00098             speid = cur_anySpeid++;
+<a name="l00099"></a>00099             cur_anySpeid = (cur_anySpeid &lt; machineNum)
+<a name="l00100"></a>00100                 ? cur_anySpeid : 0;
+<a name="l00101"></a>00101         } <span class="keywordflow">else</span> {
+<a name="l00102"></a>00102             <span class="comment">// -1 ƤΤ</span>
+<a name="l00103"></a>00103             <span class="comment">// htask-&gt;cpu_type - CPU_SPE </span>
+<a name="l00104"></a>00104             <span class="comment">// SPE0 = 1, SPE1 = 2, ... SPE5 = 6 äƤʤäƤΤ</span>
+<a name="l00105"></a>00105             <span class="comment">// Ū (SPE0 = arr[0], SPE1 = arr[1]) ˤ뤿</span>
+<a name="l00106"></a>00106             speid = htask-&gt;cpu_type - CPU_SPE - 1;
+<a name="l00107"></a>00107 
+<a name="l00108"></a>00108             <span class="comment">// SPU οʾ夬ꤵƤ</span>
+<a name="l00109"></a>00109             <span class="comment">// Ȥꤢ MAX_USE_SPE_NUM (ºݤư SPE κ) </span>
+<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="keywordflow">if</span> (speid &gt;= machineNum) {
+<a name="l00113"></a>00113                 speid %= machineNum;
+<a name="l00114"></a>00114             }
+<a name="l00115"></a>00115         }
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117         list = speTaskList_bg[speid];
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119         <span class="keywordflow">if</span> (list-&gt;length &gt;= TASK_MAX_SIZE) {
+<a name="l00120"></a>00120             TaskListPtr newList = bufferManager-&gt;create_taskList();
+<a name="l00121"></a>00121             newList = TaskListInfo::append(newList, speTaskList_bg[speid]);
+<a name="l00122"></a>00122             speTaskList_bg[speid] = newList;
+<a name="l00123"></a>00123             list = newList;
+<a name="l00124"></a>00124         }
+<a name="l00125"></a>00125 
+<a name="l00126"></a>00126         task = &amp;list-&gt;tasks[list-&gt;length++];
+<a name="l00127"></a>00127 <span class="preprocessor">#if 0</span>
+<a name="l00128"></a>00128 <span class="preprocessor"></span>        task-&gt;command  = htask-&gt;command;
+<a name="l00129"></a>00129         task-&gt;inData   = htask-&gt;inData;
+<a name="l00130"></a>00130         task-&gt;outData  = htask-&gt;outData;
+<a name="l00131"></a>00131         task-&gt;self     = (<span class="keywordtype">unsigned</span> int)htask;
+<a name="l00132"></a>00132 <span class="preprocessor">#else</span>
+<a name="l00133"></a>00133 <span class="preprocessor"></span>        memcpy(task, htask, <span class="keyword">sizeof</span>(Task));
+<a name="l00134"></a>00134 <span class="preprocessor">#endif</span>
+<a name="l00135"></a>00135 <span class="preprocessor"></span>
+<a name="l00136"></a>00136         bufferManager-&gt;free_taskQueue(d);
+<a name="l00137"></a>00137     }
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139     activeTaskQueue = NULL;
+<a name="l00140"></a>00140 }
+<a name="l00141"></a>00141 
+<a name="l00142"></a>00142 <span class="keywordtype">void</span>
+<a name="l00143"></a>00143 CellTaskManagerImpl::run(<span class="keywordtype">void</span>)
+<a name="l00144"></a>00144 {
+<a name="l00145"></a>00145     TaskListPtr ppeTaskList = NULL;
+<a name="l00146"></a>00146     MailQueuePtr ppeMail = NULL;
+<a name="l00147"></a>00147 
+<a name="l00148"></a>00148     <span class="comment">// PPE ¦ư TaskList Ǥ</span>
+<a name="l00149"></a>00149     <span class="comment">// FifoTaskManagerImpl::run Ⱦ꤯礦褦</span>
+<a name="l00150"></a>00150     <span class="comment">// ʤȤäƤޤ</span>
+<a name="l00151"></a>00151     ppeTaskList = ppeManager-&gt;get_runTaskList();
+<a name="l00152"></a>00152     <span class="keywordflow">if</span> (!ppeTaskList) {
+<a name="l00153"></a>00153         <span class="keywordflow">goto</span> cont;
+<a name="l00154"></a>00154     }
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156     <span class="comment">// SPE  Mailbox Check </span>
+<a name="l00157"></a>00157     <span class="comment">// PPE ¦ schedule ȴ褿Ȥ˹Ԥ</span>
+<a name="l00158"></a>00158     <span class="comment">// (speThreads  Blocking Mailbox read </span>
+<a name="l00159"></a>00159     <span class="comment">// ޥեȤȤäƤäƤ⤤Ϥ)</span>
+<a name="l00160"></a>00160     <span class="keywordflow">do</span> {
+<a name="l00161"></a>00161         ppeMail = ppeManager-&gt;schedule(ppeTaskList);
+<a name="l00162"></a>00162     cont:
+<a name="l00163"></a>00163         ppeTaskList = mail_check(ppeMail);
+<a name="l00164"></a>00164     } <span class="keywordflow">while</span> (ppeTaskList);
+<a name="l00165"></a>00165 }
+<a name="l00166"></a>00166 TaskListPtr
+<a name="l00177"></a>00177 CellTaskManagerImpl::mail_check(MailQueuePtr mail_list)
+<a name="l00178"></a>00178 {
+<a name="l00179"></a>00179     <span class="comment">// PPE Scheduler  mail check</span>
+<a name="l00180"></a>00180     ppeManager-&gt;mail_check(mail_list, &amp;waitTaskQueue);
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182     <span class="keywordflow">do</span> {
+<a name="l00183"></a>00183         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> data;
+<a name="l00184"></a>00184 
+<a name="l00185"></a>00185         <span class="comment">// SPE Scheduler  mail check</span>
+<a name="l00186"></a>00186         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> <span class="keywordtype">id</span> = 0; <span class="keywordtype">id</span> &lt; machineNum; <span class="keywordtype">id</span>++) {           
+<a name="l00187"></a>00187             <span class="keywordflow">while</span> (speThreads-&gt;check_mail(<span class="keywordtype">id</span>, 1, &amp;data)) {                              
+<a name="l00188"></a>00188                 
+<a name="l00198"></a>00198                 <span class="comment">// ̾ȤǤȷ褦 =&gt; MY_SPE_... Ȥʤ</span>
+<a name="l00199"></a>00199                 <span class="keywordflow">if</span> (data == MY_SPE_STATUS_READY) {
+<a name="l00200"></a>00200                     __debug_ppe(<span class="stringliteral">"[SPE %d] finish\n"</span>, <span class="keywordtype">id</span>);
+<a name="l00201"></a>00201                     flag_sendTaskList[id] = 1;
+<a name="l00202"></a>00202                 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (data == MY_SPE_COMMAND_MALLOC) {
+<a name="l00203"></a>00203                     __debug_ppe(<span class="stringliteral">"[PPE] MALLOC COMMAND from [SPE %d]\n"</span>, <span class="keywordtype">id</span>);
+<a name="l00204"></a>00204 
+<a name="l00209"></a>00209                     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> alloc_info[3];
+<a name="l00210"></a>00210                     <span class="keywordtype">int</span> alloc_size;
+<a name="l00211"></a>00211                     <span class="keywordtype">int</span> command;
+<a name="l00212"></a>00212                     
+<a name="l00213"></a>00213                     speThreads-&gt;get_mail(<span class="keywordtype">id</span>, 2, alloc_info);
+<a name="l00214"></a>00214                     command = alloc_info[0];
+<a name="l00215"></a>00215                     alloc_size = alloc_info[1];
+<a name="l00216"></a>00216 
+<a name="l00217"></a>00217                     
+<a name="l00218"></a>00218                     alloc_info[1] = (<span class="keywordtype">unsigned</span> int)allocate(alloc_size);
+<a name="l00219"></a>00219                     <span class="comment">/*</span>
+<a name="l00220"></a>00220 <span class="comment">                     * allocate 줿ΰϺ SPE buffer ˥󥯤Ȥ³</span>
+<a name="l00221"></a>00221 <span class="comment">                     * Ǥ TaskList  allocate(new) ϿƤ</span>
+<a name="l00222"></a>00222 <span class="comment">                     */</span>
+<a name="l00223"></a>00223 
+<a name="l00224"></a>00224                     speThreads-&gt;add_output_tasklist(command, (<span class="keywordtype">void</span>*)alloc_info[1], alloc_size);
+<a name="l00225"></a>00225 
+<a name="l00226"></a>00226                     speThreads-&gt;send_mail(<span class="keywordtype">id</span>, 2, alloc_info);
+<a name="l00227"></a>00227                 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (data &gt; MY_SPE_NOP) {
+<a name="l00228"></a>00228                     __debug_ppe(<span class="stringliteral">"[PPE] recv from [SPE %d] : 0x%x\n"</span>, <span class="keywordtype">id</span>, data);
+<a name="l00229"></a>00229                     check_task_finish((HTaskPtr)data);
+<a name="l00230"></a>00230                 }
+<a name="l00231"></a>00231             }
+<a name="l00232"></a>00232         }
+<a name="l00233"></a>00233 
+<a name="l00234"></a>00234         <span class="comment">// ¸ط򥢥ƥ֤</span>
+<a name="l00235"></a>00235         wakeup_waitTask();
+<a name="l00236"></a>00236 
+<a name="l00237"></a>00237         <span class="comment">// SPE  TaskList ν</span>
+<a name="l00238"></a>00238         set_runTaskList();
+<a name="l00239"></a>00239 
+<a name="l00240"></a>00240         <span class="comment">// TaskList Ԥ SPE  TaskList </span>
+<a name="l00241"></a>00241         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; machineNum; i++)  {
+<a name="l00242"></a>00242             <span class="keywordflow">if</span> (flag_sendTaskList[i] == 1 &amp;&amp; speTaskList_bg[i]-&gt;length &gt;= 1 ) {
+<a name="l00243"></a>00243                 send_taskList(i);
+<a name="l00244"></a>00244             }
+<a name="l00245"></a>00245         }
+<a name="l00246"></a>00246 
+<a name="l00247"></a>00247         <span class="comment">// ߤ FifoTaskManager λͤǤ</span>
+<a name="l00248"></a>00248         <span class="comment">// PPE Ǽ¹Ԥ륿̵ʤнλ</span>
+<a name="l00249"></a>00249         <span class="comment">// Ǥꡢξ⤷ SPE ˥ĤäƤƤ</span>
+<a name="l00250"></a>00250         <span class="comment">// ᥤ롼פȴƥץཪλȤʤäƤޤΤ</span>
+<a name="l00251"></a>00251         <span class="comment">// ǥȥåפƤޤ</span>
+<a name="l00252"></a>00252     } <span class="keywordflow">while</span> (!ppeManager-&gt;activeTaskQueue &amp;&amp; waitTaskQueue);
+<a name="l00253"></a>00253         
+<a name="l00254"></a>00254     <span class="keywordflow">return</span> ppeManager-&gt;get_runTaskList();
+<a name="l00255"></a>00255 }
+<a name="l00256"></a>00256 
+<a name="l00266"></a>00266 <span class="keywordtype">void</span>
+<a name="l00267"></a>00267 CellTaskManagerImpl::send_taskList(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
+<a name="l00268"></a>00268 {
+<a name="l00269"></a>00269     TaskListPtr tmp;
+<a name="l00270"></a>00270 
+<a name="l00271"></a>00271     tmp = speTaskList[id];
+<a name="l00272"></a>00272     speTaskList[id]  = speTaskList_bg[id];
+<a name="l00273"></a>00273     speTaskList_bg[id] = tmp;
+<a name="l00274"></a>00274 
+<a name="l00275"></a>00275     bufferManager-&gt;clear_taskList(speTaskList_bg[<span class="keywordtype">id</span>]);
+<a name="l00276"></a>00276 
+<a name="l00277"></a>00277     speThreads-&gt;send_mail(<span class="keywordtype">id</span>, 1, (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *)&amp;speTaskList[<span class="keywordtype">id</span>]);
+<a name="l00278"></a>00278     flag_sendTaskList[id] = 0;
+<a name="l00279"></a>00279 }
+<a name="l00280"></a>00280 
+<a name="l00281"></a>00281 
+<a name="l00282"></a>00282 <span class="keywordtype">void</span>*
+<a name="l00283"></a>00283 CellTaskManagerImpl::allocate(<span class="keywordtype">int</span> size)
+<a name="l00284"></a>00284 {
+<a name="l00285"></a>00285     <span class="keywordtype">void</span> *buff;
+<a name="l00286"></a>00286     
+<a name="l00287"></a>00287     posix_memalign(&amp;buff, DEFAULT_ALIGNMENT, size);
+<a name="l00288"></a>00288 
+<a name="l00289"></a>00289     <span class="comment">// bzero ϥȤ⤤ΤǤꤿʤ</span>
+<a name="l00290"></a>00290     bzero(buff, size);
+<a name="l00291"></a>00291 
+<a name="l00292"></a>00292     <span class="keywordflow">return</span> buff;
+<a name="l00293"></a>00293 }
+<a name="l00294"></a>00294 
+<a name="l00295"></a>00295 <span class="preprocessor">#ifdef __CERIUM_CELL__</span>
+<a name="l00296"></a>00296 <span class="preprocessor"></span>TaskManagerImpl*
+<a name="l00297"></a>00297 create_impl(<span class="keywordtype">int</span> num)
+<a name="l00298"></a>00298 {
+<a name="l00299"></a>00299     <span class="keywordflow">return</span> <span class="keyword">new</span> CellTaskManagerImpl(num);
+<a name="l00300"></a>00300 }
+<a name="l00301"></a>00301 <span class="preprocessor">#endif // __CERIUM_CELL</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/CellTaskManagerImpl_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CellTaskManagerImpl_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -72,7 +72,7 @@
 <a name="l00052"></a>00052 <span class="preprocessor"></span>
 <a name="l00053"></a>00053 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2SchedExit_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedExit.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedExit.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SchedExit.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "error.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 SchedTaskBase*
+<a name="l00006"></a>00006 SchedExit::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008     <span class="keyword">delete</span> p;
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010     m-&gt;show_dma_wait();
+<a name="l00011"></a>00011     __debug(<span class="stringliteral">"SchedExit::next()\n"</span>);
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013     <span class="keywordflow">return</span> NULL;
+<a name="l00014"></a>00014 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2SchedMail_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedMail.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedMail.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "SchedMail.h"</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SchedTaskList.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedExit.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "error.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 SchedMail::SchedMail(Scheduler *sched)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008     scheduler = sched;
+<a name="l00009"></a>00009 }
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 SchedTaskBase*
+<a name="l00012"></a>00012 SchedMail::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014     <span class="keyword">delete</span> p;
+<a name="l00015"></a>00015     
+<a name="l00016"></a>00016     params_addr = scheduler-&gt;mail_read();
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018     __debug(<span class="stringliteral">"[SchedMail:%s]\n"</span>, __FUNCTION__);
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020     <span class="keywordflow">if</span> ((<span class="keywordtype">int</span>)params_addr == MY_SPE_COMMAND_EXIT) {
+<a name="l00021"></a>00021         <span class="keywordflow">return</span> <span class="keyword">new</span> SchedExit();
+<a name="l00022"></a>00022     } <span class="keywordflow">else</span> {
+<a name="l00023"></a>00023         <span class="keywordflow">return</span> <span class="keyword">new</span> SchedTaskList(params_addr, m);
+<a name="l00024"></a>00024     }
+<a name="l00025"></a>00025 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2SchedNop2Ready_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedNop2Ready.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedNop2Ready.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SchedNop2Ready.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedTaskList.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "SchedMail.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "error.h"</span>
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 SchedNop2Ready::SchedNop2Ready(Scheduler *cn)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     scheduler = cn;
+<a name="l00010"></a>00010 }
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 <span class="keywordtype">void</span>
+<a name="l00013"></a>00013 SchedNop2Ready::exec(<span class="keywordtype">void</span>)
+<a name="l00014"></a>00014 {
+<a name="l00015"></a>00015     __debug(<span class="stringliteral">"[SchedNop2Ready:%s]\n"</span>, __FUNCTION__);
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017     <span class="comment">//scheduler-&gt;mail_write(MY_SPE_STATUS_READY);</span>
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 SchedTaskBase*
+<a name="l00021"></a>00021 SchedNop2Ready::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00022"></a>00022 {
+<a name="l00023"></a>00023     SchedTaskBase *nextSched;
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025     __debug(<span class="stringliteral">"[SchedNop2Ready:%s]\n"</span>, __FUNCTION__);
+<a name="l00026"></a>00026     
+<a name="l00027"></a>00027     <span class="keyword">delete</span> p;
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029     nextSched = scheduler-&gt;get_nextRenewTaskList();
+<a name="l00030"></a>00030         
+<a name="l00031"></a>00031     <span class="comment">// RenewTask </span>
+<a name="l00032"></a>00032     <span class="keywordflow">if</span> (nextSched) {
+<a name="l00033"></a>00033         <span class="keywordflow">return</span> nextSched;
+<a name="l00034"></a>00034     } <span class="keywordflow">else</span> {
+<a name="l00035"></a>00035         scheduler-&gt;mail_write(MY_SPE_STATUS_READY);
+<a name="l00036"></a>00036         <span class="keywordflow">return</span> <span class="keyword">new</span> SchedMail(scheduler);
+<a name="l00037"></a>00037     }
+<a name="l00038"></a>00038 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2SchedNop_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedNop.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedNop.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SchedNop.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedMail.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "error.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 SchedTaskBase*
+<a name="l00007"></a>00007 SchedNop::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     __debug(<span class="stringliteral">"[SPE] SchedNop::next()"</span>);
+<a name="l00010"></a>00010     
+<a name="l00011"></a>00011     <span class="keyword">delete</span> p;
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013     <span class="keywordflow">return</span> <span class="keyword">new</span> SchedMail(m);
+<a name="l00014"></a>00014 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2SchedTaskList_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedTaskList.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedTaskList.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedTaskList.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "SchedTask.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "SchedNop2Ready.h"</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include "DmaManager.h"</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include "error.h"</span>
+<a name="l00008"></a>00008 
+<a name="l00018"></a>00018 SchedTaskList*
+<a name="l00019"></a>00019 createSchedTaskList(uint32 next_list, Scheduler* scheduler, <span class="keywordtype">int</span> renew_flag)
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021     SchedTaskList* sched = <span class="keyword">new</span> SchedTaskList(next_list, scheduler);
+<a name="l00022"></a>00022     sched-&gt;flag_renewTaskList = renew_flag;
+<a name="l00023"></a>00023     <span class="keywordflow">return</span> sched;
+<a name="l00024"></a>00024 }
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 SchedTaskList::SchedTaskList(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> addr, Scheduler *sched)
+<a name="l00027"></a>00027 {
+<a name="l00028"></a>00028     params_addr = addr;
+<a name="l00029"></a>00029     list = NULL;
+<a name="l00030"></a>00030     scheduler = sched;
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032     flag_renewTaskList = 0;
+<a name="l00033"></a>00033 }
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 <span class="keywordtype">void</span>
+<a name="l00037"></a>00037 SchedTaskList::read(<span class="keywordtype">void</span>)
+<a name="l00038"></a>00038 {
+<a name="l00039"></a>00039     __debug(<span class="stringliteral">"[SchedTaskList:%s]\n"</span>, __FUNCTION__);
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041     <span class="keywordflow">if</span> (flag_renewTaskList == SCHED_TASKLIST_NORMAL) {
+<a name="l00042"></a>00042         list = scheduler-&gt;get_curListBuf();
+<a name="l00043"></a>00043         scheduler-&gt;dma_load(list, params_addr,
+<a name="l00044"></a>00044                             <span class="keyword">sizeof</span>(TaskList), DMA_READ_TASKLIST);
+<a name="l00045"></a>00045     } <span class="keywordflow">else</span> {
+<a name="l00046"></a>00046         list = (TaskListPtr)params_addr;
+<a name="l00047"></a>00047     }
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 SchedTaskBase*
+<a name="l00051"></a>00051 SchedTaskList::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053     SchedTaskBase *nextSched;
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     __debug(<span class="stringliteral">"[SchedTaskList:%s]\n"</span>, __FUNCTION__);
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057     <span class="keyword">delete</span> p;
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059     scheduler-&gt;dma_wait(DMA_READ_TASKLIST);
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061     <span class="keywordflow">if</span> (list-&gt;length &lt; 1) {
+<a name="l00062"></a>00062         nextSched = <span class="keyword">new</span> SchedNop2Ready(scheduler);
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064         <span class="keywordflow">if</span> (flag_renewTaskList == SCHED_TASKLIST_RENEW) {
+<a name="l00065"></a>00065             free(list);
+<a name="l00066"></a>00066         }
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068     } <span class="keywordflow">else</span> {
+<a name="l00069"></a>00069         TaskPtr nextTask = &amp;list-&gt;tasks[0];
+<a name="l00070"></a>00070         nextSched = createSchedTask(nextTask);
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072         <span class="keywordflow">if</span> (flag_renewTaskList == SCHED_TASKLIST_RENEW) {
+<a name="l00073"></a>00073             ((SchedTask*)nextSched)-&gt;__setRenew();
+<a name="l00074"></a>00074         }
+<a name="l00075"></a>00075         
+<a name="l00076"></a>00076         ((SchedTask*)nextSched)-&gt;__init__(list, nextTask, 1,
+<a name="l00077"></a>00077                                           scheduler-&gt;get_curReadBuf(),
+<a name="l00078"></a>00078                                           scheduler-&gt;get_curWriteBuf(),
+<a name="l00079"></a>00079                                           scheduler);
+<a name="l00080"></a>00080     }
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082     <span class="keywordflow">return</span> nextSched;
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2SchedTask_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,480 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedTask.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedTask.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedTask.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "SchedTaskList.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "SchedNop2Ready.h"</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include "DmaManager.h"</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include "error.h"</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#include "TaskManager.h"</span>
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 <span class="keyword">extern</span> Scheduler::TaskObject task_list[MAX_TASK_OBJECT];
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 <span class="comment">//#define NO_PIPELINE </span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 SchedTask*
+<a name="l00015"></a>00015 createSchedTask(TaskPtr task)
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017     <span class="keywordflow">return</span> task_list[task-&gt;command]();
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 SchedTask::SchedTask(<span class="keywordtype">void</span>)
+<a name="l00021"></a>00021 {
+<a name="l00022"></a>00022     __list        = NULL;
+<a name="l00023"></a>00023     __task        = NULL;
+<a name="l00024"></a>00024     __inListData  = NULL;
+<a name="l00025"></a>00025     __outListData = NULL;
+<a name="l00026"></a>00026     __readbuf     = NULL;
+<a name="l00027"></a>00027     __writebuf    = NULL;
+<a name="l00028"></a>00028     __scheduler   = NULL;
+<a name="l00029"></a>00029     __taskGroup   = NULL;
+<a name="l00030"></a>00030     __renew_flag  = 0;
+<a name="l00031"></a>00031     __cur_index   = 0;
+<a name="l00032"></a>00032     __flag_renewTask = SCHED_TASK_NORMAL;
+<a name="l00033"></a>00033     
+<a name="l00034"></a>00034     ex_init  = &amp;SchedTask::ex_init_normal;
+<a name="l00035"></a>00035     ex_read  = &amp;SchedTask::ex_read_normal;
+<a name="l00036"></a>00036     ex_exec  = &amp;SchedTask::ex_exec_normal;
+<a name="l00037"></a>00037     ex_write = &amp;SchedTask::ex_write_normal;
+<a name="l00038"></a>00038     ex_next  = &amp;SchedTask::ex_next_normal;
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     run_func = &amp;SchedTask::run;
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042 
+<a name="l00050"></a>00050 SchedTask::~SchedTask(<span class="keywordtype">void</span>)
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052     <span class="keywordflow">if</span> (__flag_renewTask == SCHED_TASK_RENEW) {
+<a name="l00053"></a>00053         free(__inListData);
+<a name="l00054"></a>00054         free(__outListData);
+<a name="l00055"></a>00055  
+<a name="l00064"></a>00064         free(__list);
+<a name="l00065"></a>00065     }
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067     <span class="keyword">delete</span> smanager;
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069 
+<a name="l00073"></a>00073 <span class="keywordtype">void</span>
+<a name="l00074"></a>00074 SchedTask::__setRenew(<span class="keywordtype">void</span>)
+<a name="l00075"></a>00075 {
+<a name="l00076"></a>00076     __flag_renewTask = SCHED_TASK_RENEW;
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078     ex_init   = &amp;SchedTask::ex_init_renew;
+<a name="l00079"></a>00079     ex_read   = &amp;SchedTask::ex_read_renew;
+<a name="l00080"></a>00080     ex_exec   = &amp;SchedTask::ex_exec_renew;
+<a name="l00081"></a>00081     ex_write  = &amp;SchedTask::ex_write_renew; 
+<a name="l00082"></a>00082     ex_next   = &amp;SchedTask::ex_next_renew;
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="keywordtype">void</span>
+<a name="l00086"></a>00086 SchedTask::__init__(TaskListPtr _list, TaskPtr _task, <span class="keywordtype">int</span> index,
+<a name="l00087"></a>00087                     ListDataPtr rbuf, ListDataPtr wbuf, Scheduler* sc)
+<a name="l00088"></a>00088 {
+<a name="l00089"></a>00089     __list        = _list;
+<a name="l00090"></a>00090     __task        = _task;
+<a name="l00091"></a>00091     __inListData  = rbuf;
+<a name="l00092"></a>00092     __outListData = wbuf;
+<a name="l00093"></a>00093     __scheduler   = sc;
+<a name="l00094"></a>00094     __cur_index   = index;
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096     smanager = <span class="keyword">new</span> STaskManager(<span class="keyword">this</span>);
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098     __scheduler-&gt;mainMem_wait();
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100     (this-&gt;*ex_init)();
+<a name="l00101"></a>00101 }
+<a name="l00102"></a>00102 
+<a name="l00106"></a>00106 <span class="keywordtype">void</span>
+<a name="l00107"></a>00107 SchedTask::ex_init_normal(<span class="keywordtype">void</span>)
+<a name="l00108"></a>00108 {
+<a name="l00109"></a>00109     __scheduler-&gt;dma_load(__inListData, (uint32)__task-&gt;inData,
+<a name="l00110"></a>00110                           <span class="keyword">sizeof</span>(ListData), DMA_READ_IN_LIST);
+<a name="l00111"></a>00111     __scheduler-&gt;dma_load(__outListData, (uint32)__task-&gt;outData,
+<a name="l00112"></a>00112                           <span class="keyword">sizeof</span>(ListData), DMA_READ_OUT_LIST);
+<a name="l00113"></a>00113 <span class="preprocessor">#if defined(NO_PIPELINE)</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_READ_IN_LIST);
+<a name="l00115"></a>00115     __scheduler-&gt;dma_wait(DMA_READ_OUT_LIST);
+<a name="l00116"></a>00116 <span class="preprocessor">#endif</span>
+<a name="l00117"></a>00117 <span class="preprocessor"></span>    
+<a name="l00118"></a>00118     __taskGroup = <span class="keyword">new</span> TaskGroup;
+<a name="l00119"></a>00119     __taskGroup-&gt;command = __task-&gt;self;
+<a name="l00120"></a>00120 }
+<a name="l00121"></a>00121 
+<a name="l00127"></a>00127 <span class="keywordtype">void</span>
+<a name="l00128"></a>00128 SchedTask::ex_init_renew(<span class="keywordtype">void</span>)
+<a name="l00129"></a>00129 {
+<a name="l00130"></a>00130     __inListData = __task-&gt;inData;
+<a name="l00131"></a>00131     __outListData = __task-&gt;outData;
+<a name="l00132"></a>00132     __taskGroup = (TaskGroupPtr)__task-&gt;self;    
+<a name="l00133"></a>00133 }
+<a name="l00134"></a>00134 
+<a name="l00144"></a>00144 <span class="keywordtype">void</span>
+<a name="l00145"></a>00145 SchedTask::read(<span class="keywordtype">void</span>)
+<a name="l00146"></a>00146 {    
+<a name="l00147"></a>00147     __debug(<span class="stringliteral">"[SchedTask:%s]\n"</span>, __FUNCTION__);
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149 <span class="preprocessor">#if !defined(NO_PIPELINE)</span>
+<a name="l00150"></a>00150 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_READ_IN_LIST);
+<a name="l00151"></a>00151     __scheduler-&gt;dma_wait(DMA_READ_OUT_LIST);
+<a name="l00152"></a>00152 <span class="preprocessor">#endif</span>
+<a name="l00153"></a>00153 <span class="preprocessor"></span>
+<a name="l00154"></a>00154     __writebuf = __scheduler-&gt;allocate(__outListData-&gt;size);
+<a name="l00155"></a>00155     
+<a name="l00156"></a>00156     <span class="comment">// ɤǡĤʤ̵</span>
+<a name="l00157"></a>00157     <span class="keywordflow">if</span> (__inListData-&gt;length == 0) <span class="keywordflow">return</span>;
+<a name="l00158"></a>00158 
+<a name="l00159"></a>00159     <span class="comment">// load Input Data</span>
+<a name="l00160"></a>00160     __readbuf = __scheduler-&gt;allocate(__inListData-&gt;size);
+<a name="l00161"></a>00161     __scheduler-&gt;dma_loadList(__inListData, __readbuf, DMA_READ);
+<a name="l00162"></a>00162 
+<a name="l00163"></a>00163 <span class="preprocessor">#if defined(NO_PIPELINE)</span>
+<a name="l00164"></a>00164 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_READ);
+<a name="l00165"></a>00165 <span class="preprocessor">#endif</span>
+<a name="l00166"></a>00166 <span class="preprocessor"></span>
+<a name="l00167"></a>00167     (this-&gt;*ex_read)();
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170 <span class="keywordtype">void</span>
+<a name="l00171"></a>00171 SchedTask::exec(<span class="keywordtype">void</span>)
+<a name="l00172"></a>00172 {
+<a name="l00173"></a>00173     __debug(<span class="stringliteral">"[SchedTask:%s]\n"</span>, __FUNCTION__);
+<a name="l00174"></a>00174 
+<a name="l00175"></a>00175 <span class="preprocessor">#if !defined(NO_PIPELINE)</span>
+<a name="l00176"></a>00176 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_READ);
+<a name="l00177"></a>00177 <span class="preprocessor">#endif</span>
+<a name="l00178"></a>00178 <span class="preprocessor"></span>
+<a name="l00179"></a>00179     <span class="comment">//run(__readbuf, __writebuf);</span>
+<a name="l00180"></a>00180     (this-&gt;*run_func)(__readbuf, __writebuf);
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182     free(__readbuf);
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184     <span class="keywordflow">if</span> (__taskGroup-&gt;status() != 0) {
+<a name="l00185"></a>00185         __task-&gt;self = __taskGroup-&gt;command;
+<a name="l00186"></a>00186         <span class="keyword">delete</span> __taskGroup;
+<a name="l00187"></a>00187         __taskGroup = NULL;
+<a name="l00188"></a>00188     }
+<a name="l00189"></a>00189 
+<a name="l00190"></a>00190 
+<a name="l00191"></a>00191     <span class="comment">// 񤭹ΰ褬ʤ̵</span>
+<a name="l00192"></a>00192     <span class="keywordflow">if</span> (__outListData-&gt;length &gt; 0) {
+<a name="l00193"></a>00193         __scheduler-&gt;dma_storeList(__outListData, __writebuf, DMA_WRITE);
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195 <span class="preprocessor">#if defined(NO_PIPELINE)</span>
+<a name="l00196"></a>00196 <span class="preprocessor"></span>        __scheduler-&gt;dma_wait(DMA_WRITE);
+<a name="l00197"></a>00197         free(__writebuf);
+<a name="l00198"></a>00198 <span class="preprocessor">#endif</span>
+<a name="l00199"></a>00199 <span class="preprocessor"></span>    }
+<a name="l00200"></a>00200 
+<a name="l00201"></a>00201     (this-&gt;*ex_exec)();
+<a name="l00202"></a>00202 }
+<a name="l00203"></a>00203 
+<a name="l00204"></a>00204 <span class="keywordtype">void</span>
+<a name="l00205"></a>00205 SchedTask::write(<span class="keywordtype">void</span>)
+<a name="l00206"></a>00206 {
+<a name="l00207"></a>00207     __debug(<span class="stringliteral">"[SchedTask:%s]\n"</span>, __FUNCTION__);
+<a name="l00208"></a>00208     
+<a name="l00209"></a>00209 <span class="preprocessor">#if !defined(NO_PIPELINE)</span>
+<a name="l00210"></a>00210 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_WRITE);
+<a name="l00211"></a>00211     free(__writebuf);
+<a name="l00212"></a>00212 <span class="preprocessor">#endif</span>
+<a name="l00213"></a>00213 <span class="preprocessor"></span>
+<a name="l00214"></a>00214     <span class="keywordflow">if</span> (__task-&gt;self == MY_SPE_NOP) <span class="keywordflow">return</span>;
+<a name="l00215"></a>00215 
+<a name="l00216"></a>00216     (this-&gt;*ex_write)();
+<a name="l00217"></a>00217 }
+<a name="l00218"></a>00218 
+<a name="l00222"></a>00222 <span class="keywordtype">void</span>
+<a name="l00223"></a>00223 SchedTask::ex_read_normal(<span class="keywordtype">void</span>)
+<a name="l00224"></a>00224 {
+<a name="l00225"></a>00225 }
+<a name="l00226"></a>00226 
+<a name="l00230"></a>00230 <span class="keywordtype">void</span>
+<a name="l00231"></a>00231 SchedTask::ex_read_renew(<span class="keywordtype">void</span>)
+<a name="l00232"></a>00232 {
+<a name="l00233"></a>00233 }
+<a name="l00234"></a>00234 
+<a name="l00238"></a>00238 <span class="keywordtype">void</span>
+<a name="l00239"></a>00239 SchedTask::ex_exec_normal(<span class="keywordtype">void</span>)
+<a name="l00240"></a>00240 {
+<a name="l00241"></a>00241 }
+<a name="l00242"></a>00242 
+<a name="l00246"></a>00246 <span class="keywordtype">void</span>
+<a name="l00247"></a>00247 SchedTask::ex_exec_renew(<span class="keywordtype">void</span>)
+<a name="l00248"></a>00248 {
+<a name="l00249"></a>00249 }
+<a name="l00250"></a>00250 
+<a name="l00251"></a>00251 
+<a name="l00252"></a>00252 
+<a name="l00260"></a>00260 <span class="keywordtype">void</span>
+<a name="l00261"></a>00261 SchedTask::ex_write_normal(<span class="keywordtype">void</span>)
+<a name="l00262"></a>00262 {
+<a name="l00267"></a>00267     <span class="keywordflow">if</span> (__renew_flag == 0) {
+<a name="l00268"></a>00268         __scheduler-&gt;mail_write(__task-&gt;self);
+<a name="l00269"></a>00269     }
+<a name="l00270"></a>00270 }
+<a name="l00271"></a>00271 
+<a name="l00284"></a>00284 <span class="keywordtype">void</span>
+<a name="l00285"></a>00285 SchedTask::ex_write_renew(<span class="keywordtype">void</span>)
+<a name="l00286"></a>00286 {
+<a name="l00287"></a>00287     uint32 cmd;
+<a name="l00288"></a>00288         
+<a name="l00289"></a>00289     __taskGroup-&gt;remove(__task);
+<a name="l00290"></a>00290     cmd = __taskGroup-&gt;status();    
+<a name="l00291"></a>00291 
+<a name="l00292"></a>00292     <span class="comment">// Ǻ줿ƤΥλ</span>
+<a name="l00293"></a>00293     <span class="keywordflow">if</span> (cmd != 0) {
+<a name="l00294"></a>00294         <span class="keyword">delete</span> __taskGroup;
+<a name="l00295"></a>00295         __scheduler-&gt;mail_write(cmd);
+<a name="l00296"></a>00296     }
+<a name="l00297"></a>00297 }
+<a name="l00298"></a>00298     
+<a name="l00299"></a>00299 SchedTaskBase*
+<a name="l00300"></a>00300 SchedTask::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00301"></a>00301 {
+<a name="l00302"></a>00302     __debug(<span class="stringliteral">"[SchedTask:%s]\n"</span>, __FUNCTION__);
+<a name="l00303"></a>00303 
+<a name="l00304"></a>00304     <span class="keyword">delete</span> p;
+<a name="l00305"></a>00305 
+<a name="l00306"></a>00306     <span class="keywordflow">return</span> (this-&gt;*ex_next)();
+<a name="l00307"></a>00307 }
+<a name="l00308"></a>00308 
+<a name="l00309"></a>00309 SchedTaskBase*
+<a name="l00310"></a>00310 SchedTask::ex_next_normal(<span class="keywordtype">void</span>)
+<a name="l00311"></a>00311 {
+<a name="l00312"></a>00312     <span class="keywordflow">if</span> (__cur_index &lt; __list-&gt;length) {
+<a name="l00313"></a>00313         SchedTaskBase *nextSched;
+<a name="l00314"></a>00314 
+<a name="l00315"></a>00315         nextSched = __scheduler-&gt;get_nextRenewTaskList();
+<a name="l00316"></a>00316         
+<a name="l00317"></a>00317         <span class="comment">// RenewTask </span>
+<a name="l00318"></a>00318         <span class="keywordflow">if</span> (nextSched) {
+<a name="l00319"></a>00319             __scheduler-&gt;set_backupTaskList(__list);
+<a name="l00320"></a>00320             __scheduler-&gt;set_backupTaskListIndex(__cur_index);
+<a name="l00321"></a>00321             <span class="keywordflow">return</span> nextSched;
+<a name="l00322"></a>00322         } <span class="keywordflow">else</span> {
+<a name="l00323"></a>00323             TaskPtr nextTask = &amp;__list-&gt;tasks[__cur_index++];
+<a name="l00324"></a>00324             nextSched = createSchedTask(nextTask);
+<a name="l00325"></a>00325             ((SchedTask*)nextSched)-&gt;__init__(__list, nextTask, __cur_index,
+<a name="l00326"></a>00326                                               __scheduler-&gt;get_curReadBuf(),
+<a name="l00327"></a>00327                                               __scheduler-&gt;get_curWriteBuf(),
+<a name="l00328"></a>00328                                               __scheduler);
+<a name="l00329"></a>00329             <span class="keywordflow">return</span> nextSched;
+<a name="l00330"></a>00330         }
+<a name="l00331"></a>00331     } <span class="keywordflow">else</span> {
+<a name="l00332"></a>00332         uint32 nextList = (uint32)__list-&gt;next;
+<a name="l00333"></a>00333         
+<a name="l00334"></a>00334         if (nextList == 0) {
+<a name="l00335"></a>00335             <span class="keywordflow">return</span> <span class="keyword">new</span> SchedNop2Ready(__scheduler);
+<a name="l00336"></a>00336         } <span class="keywordflow">else</span> {
+<a name="l00337"></a>00337             <span class="keywordflow">return</span> createSchedTaskList(nextList, __scheduler,
+<a name="l00338"></a>00338                                        SCHED_TASKLIST_NORMAL);
+<a name="l00339"></a>00339         }
+<a name="l00340"></a>00340     }
+<a name="l00341"></a>00341 }
+<a name="l00342"></a>00342 
+<a name="l00346"></a>00346 SchedTaskBase*
+<a name="l00347"></a>00347 SchedTask::ex_next_renew(<span class="keywordtype">void</span>)
+<a name="l00348"></a>00348 {
+<a name="l00349"></a>00349     TaskPtr nextTask;
+<a name="l00350"></a>00350     SchedTask *nextSched;
+<a name="l00351"></a>00351 
+<a name="l00352"></a>00352     <span class="keywordflow">if</span> (__cur_index &lt; __list-&gt;length) {
+<a name="l00353"></a>00353         nextTask = &amp;__list-&gt;tasks[__cur_index++];
+<a name="l00354"></a>00354         nextSched = createSchedTask(nextTask);
+<a name="l00355"></a>00355 
+<a name="l00356"></a>00356         <span class="comment">// RenewTaskList ¹ʤΤ</span>
+<a name="l00357"></a>00357         nextSched-&gt;__setRenew();
+<a name="l00358"></a>00358         nextSched-&gt;__init__(__list, nextTask, __cur_index,
+<a name="l00359"></a>00359                             __scheduler-&gt;get_curReadBuf(),
+<a name="l00360"></a>00360                             __scheduler-&gt;get_curWriteBuf(),
+<a name="l00361"></a>00361                             __scheduler);
+<a name="l00362"></a>00362 
+<a name="l00366"></a>00366         __list = NULL;
+<a name="l00367"></a>00367         <span class="keywordflow">return</span> nextSched;
+<a name="l00368"></a>00368     } <span class="keywordflow">else</span> {
+<a name="l00369"></a>00369         SchedTaskBase *nextList;
+<a name="l00370"></a>00370         
+<a name="l00371"></a>00371         nextList = __scheduler-&gt;get_nextRenewTaskList();
+<a name="l00372"></a>00372         
+<a name="l00373"></a>00373         <span class="keywordflow">if</span> (nextList) {
+<a name="l00374"></a>00374             <span class="keywordflow">return</span> nextList;
+<a name="l00375"></a>00375         } <span class="keywordflow">else</span> {
+<a name="l00376"></a>00376             TaskListPtr nextList = __scheduler-&gt;get_backupTaskList();
+<a name="l00377"></a>00377 
+<a name="l00378"></a>00378             <span class="comment">// Ǥ TaskList </span>
+<a name="l00379"></a>00379             <span class="keywordflow">if</span> (nextList) {
+<a name="l00380"></a>00380                 __cur_index = __scheduler-&gt;get_backupTaskListIndex();
+<a name="l00381"></a>00381                 
+<a name="l00382"></a>00382                 nextTask = &amp;nextList-&gt;tasks[__cur_index++];
+<a name="l00383"></a>00383                 nextSched = createSchedTask(nextTask);
+<a name="l00384"></a>00384                 
+<a name="l00385"></a>00385                 nextSched-&gt;__init__(nextList, nextTask, __cur_index,
+<a name="l00386"></a>00386                                     __scheduler-&gt;get_curReadBuf(),
+<a name="l00387"></a>00387                                     __scheduler-&gt;get_curWriteBuf(),
+<a name="l00388"></a>00388                                     __scheduler);
+<a name="l00389"></a>00389                 <span class="keywordflow">return</span> nextSched;
+<a name="l00390"></a>00390             } <span class="keywordflow">else</span> {
+<a name="l00391"></a>00391                 <span class="keywordflow">return</span> <span class="keyword">new</span> SchedNop2Ready(__scheduler);
+<a name="l00392"></a>00392             }
+<a name="l00393"></a>00393         }
+<a name="l00394"></a>00394     }
+<a name="l00395"></a>00395 }
+<a name="l00396"></a>00396 
+<a name="l00397"></a>00397 <span class="keywordtype">int</span>
+<a name="l00398"></a>00398 SchedTask::get_cpuid(<span class="keywordtype">void</span>)
+<a name="l00399"></a>00399 {
+<a name="l00400"></a>00400     <span class="keywordflow">return</span> __scheduler-&gt;id;
+<a name="l00401"></a>00401 }
+<a name="l00402"></a>00402 
+<a name="l00407"></a>00407 <span class="keywordtype">void</span>*
+<a name="l00408"></a>00408 SchedTask::get_input(<span class="keywordtype">void</span> *buff, <span class="keywordtype">int</span> index)
+<a name="l00409"></a>00409 {
+<a name="l00410"></a>00410     <span class="keywordflow">if</span> (buff != NULL) {
+<a name="l00411"></a>00411         <span class="keywordflow">return</span> (<span class="keywordtype">void</span>*)((int)buff + __inListData-&gt;bound[index]);
+<a name="l00412"></a>00412     } <span class="keywordflow">else</span> {
+<a name="l00413"></a>00413         <span class="keywordflow">return</span> NULL;
+<a name="l00414"></a>00414     }
+<a name="l00415"></a>00415 }
+<a name="l00416"></a>00416 
+<a name="l00420"></a>00420 uint32
+<a name="l00421"></a>00421 SchedTask::get_inputAddr(<span class="keywordtype">int</span> index)
+<a name="l00422"></a>00422 {
+<a name="l00423"></a>00423     <span class="keywordflow">return</span> __inListData-&gt;element[index].addr;
+<a name="l00424"></a>00424 }
+<a name="l00425"></a>00425 
+<a name="l00429"></a>00429 <span class="keywordtype">int</span>
+<a name="l00430"></a>00430 SchedTask::get_inputSize(<span class="keywordtype">int</span> index)
+<a name="l00431"></a>00431 {
+<a name="l00432"></a>00432     <span class="keywordflow">return</span> __inListData-&gt;element[index].size;
+<a name="l00433"></a>00433 }
+<a name="l00434"></a>00434 
+<a name="l00438"></a>00438 <span class="keywordtype">void</span>*
+<a name="l00439"></a>00439 SchedTask::get_output(<span class="keywordtype">void</span> *buff, <span class="keywordtype">int</span> index)
+<a name="l00440"></a>00440 {
+<a name="l00441"></a>00441     <span class="keywordflow">if</span> (buff != NULL) {
+<a name="l00442"></a>00442         <span class="keywordflow">return</span> (<span class="keywordtype">void</span>*)((int)buff + __outListData-&gt;bound[index]);
+<a name="l00443"></a>00443     } <span class="keywordflow">else</span> {
+<a name="l00444"></a>00444         <span class="keywordflow">return</span> NULL;
+<a name="l00445"></a>00445     }
+<a name="l00446"></a>00446 }
+<a name="l00447"></a>00447 
+<a name="l00451"></a>00451 uint32
+<a name="l00452"></a>00452 SchedTask::get_outputAddr(<span class="keywordtype">int</span> index)
+<a name="l00453"></a>00453 {
+<a name="l00454"></a>00454     <span class="keywordflow">return</span> __outListData-&gt;element[index].addr;
+<a name="l00455"></a>00455 }
+<a name="l00456"></a>00456 
+<a name="l00460"></a>00460 <span class="keywordtype">int</span>
+<a name="l00461"></a>00461 SchedTask::get_outputSize(<span class="keywordtype">int</span> index)
+<a name="l00462"></a>00462 {
+<a name="l00463"></a>00463     <span class="keywordflow">return</span> __outListData-&gt;element[index].size;
+<a name="l00464"></a>00464 }
+<a name="l00465"></a>00465 
+<a name="l00466"></a>00466 <span class="keywordtype">int</span>
+<a name="l00467"></a>00467 SchedTask::get_param(<span class="keywordtype">int</span> index)
+<a name="l00468"></a>00468 {
+<a name="l00469"></a>00469     <span class="keywordflow">return</span> __task-&gt;param[index];
+<a name="l00470"></a>00470 }
+<a name="l00471"></a>00471 
+<a name="l00472"></a>00472 TaskPtr
+<a name="l00473"></a>00473 SchedTask::create_task(<span class="keywordtype">int</span> cmd)
+<a name="l00474"></a>00474 {
+<a name="l00475"></a>00475     TaskListPtr taskList = __scheduler-&gt;get_renewListBuf();
+<a name="l00476"></a>00476     TaskPtr p = &amp;taskList-&gt;tasks[taskList-&gt;length++];
+<a name="l00477"></a>00477     p-&gt;command = cmd;
+<a name="l00478"></a>00478 
+<a name="l00479"></a>00479     p-&gt;inData = (ListData*)__scheduler-&gt;allocate(<span class="keyword">sizeof</span>(ListData));
+<a name="l00480"></a>00480     p-&gt;outData = (ListData*)__scheduler-&gt;allocate(<span class="keyword">sizeof</span>(ListData));
+<a name="l00481"></a>00481 
+<a name="l00482"></a>00482     p-&gt;inData-&gt;clear();
+<a name="l00483"></a>00483     p-&gt;outData-&gt;clear();
+<a name="l00484"></a>00484 
+<a name="l00485"></a>00485     p-&gt;self = MY_SPE_NOP;
+<a name="l00486"></a>00486     p-&gt;param_size = 0;
+<a name="l00487"></a>00487 
+<a name="l00488"></a>00488     <span class="keywordflow">return</span> p;
+<a name="l00489"></a>00489 }
+<a name="l00490"></a>00490 
+<a name="l00497"></a>00497 <span class="keywordtype">void</span>
+<a name="l00498"></a>00498 SchedTask::wait_task(TaskPtr waitTask)
+<a name="l00499"></a>00499 {
+<a name="l00500"></a>00500     waitTask-&gt;self = (uint32)__taskGroup;
+<a name="l00501"></a>00501 
+<a name="l00502"></a>00502     __scheduler-&gt;add_groupTask(__taskGroup, waitTask);
+<a name="l00503"></a>00503 
+<a name="l00504"></a>00504     __renew_flag++;
+<a name="l00505"></a>00505 }
+<a name="l00506"></a>00506 
+<a name="l00507"></a>00507 <span class="keywordtype">void</span>*
+<a name="l00508"></a>00508 SchedTask::global_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size) {
+<a name="l00509"></a>00509     <span class="keywordflow">return</span> __scheduler-&gt;global_alloc(<span class="keywordtype">id</span>, size);
+<a name="l00510"></a>00510 }
+<a name="l00511"></a>00511 
+<a name="l00512"></a>00512 <span class="keywordtype">void</span>*
+<a name="l00513"></a>00513 SchedTask::global_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) {
+<a name="l00514"></a>00514     <span class="keywordflow">return</span> __scheduler-&gt;global_get(<span class="keywordtype">id</span>);
+<a name="l00515"></a>00515 }
+<a name="l00516"></a>00516 
+<a name="l00517"></a>00517 <span class="keywordtype">void</span>
+<a name="l00518"></a>00518 SchedTask::global_free(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) {
+<a name="l00519"></a>00519     __scheduler-&gt;global_free(<span class="keywordtype">id</span>);
+<a name="l00520"></a>00520 }
+<a name="l00521"></a>00521 
+<a name="l00522"></a>00522 <span class="keywordtype">void</span>
+<a name="l00523"></a>00523 SchedTask::mainMem_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size) {
+<a name="l00524"></a>00524     __scheduler-&gt;mainMem_alloc(<span class="keywordtype">id</span>, size);
+<a name="l00525"></a>00525 }
+<a name="l00526"></a>00526 
+<a name="l00527"></a>00527 <span class="keywordtype">void</span>
+<a name="l00528"></a>00528 SchedTask::mainMem_wait(<span class="keywordtype">void</span>) {
+<a name="l00529"></a>00529     __scheduler-&gt;mainMem_wait();
+<a name="l00530"></a>00530 }
+<a name="l00531"></a>00531 
+<a name="l00532"></a>00532 <span class="keywordtype">void</span>*
+<a name="l00533"></a>00533 SchedTask::mainMem_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) {
+<a name="l00534"></a>00534     <span class="keywordflow">return</span> __scheduler-&gt;mainMem_get(<span class="keywordtype">id</span>);
+<a name="l00535"></a>00535 }
+<a name="l00536"></a>00536 
+<a name="l00537"></a>00537 <span class="keywordtype">void</span>*
+<a name="l00538"></a>00538 SchedTask::allocate(<span class="keywordtype">int</span> size) {
+<a name="l00539"></a>00539     <span class="keywordflow">return</span> __scheduler-&gt;allocate(size);
+<a name="l00540"></a>00540 }
+<a name="l00541"></a>00541 
+<a name="l00542"></a>00542 <span class="keywordtype">void</span>
+<a name="l00543"></a>00543 SchedTask::dma_load(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask) {
+<a name="l00544"></a>00544     __scheduler-&gt;dma_load(buf, addr, size, mask);
+<a name="l00545"></a>00545 }
+<a name="l00546"></a>00546 
+<a name="l00547"></a>00547 <span class="keywordtype">void</span>
+<a name="l00548"></a>00548 SchedTask::dma_store(<span class="keywordtype">void</span> *buf,uint32 addr, uint32 size, uint32 mask) {
+<a name="l00549"></a>00549     __scheduler-&gt;dma_store(buf, addr, size, mask);
+<a name="l00550"></a>00550 }
+<a name="l00551"></a>00551 
+<a name="l00552"></a>00552 <span class="keywordtype">void</span>
+<a name="l00553"></a>00553 SchedTask::dma_wait(uint32 mask) {
+<a name="l00554"></a>00554     __scheduler-&gt;dma_wait(mask);
+<a name="l00555"></a>00555 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2Scheduler_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: Scheduler.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>Scheduler.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "Scheduler.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "SchedNop.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "error.h"</span>
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 Scheduler::TaskObject task_list[MAX_TASK_OBJECT];
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 Scheduler::~Scheduler(<span class="keywordtype">void</span>)
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011     <span class="keyword">delete</span> connector;
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="keywordtype">void</span>
+<a name="l00015"></a>00015 Scheduler::init(<span class="keywordtype">void</span>)
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017     init_impl();
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {
+<a name="l00020"></a>00020         buff_taskList[i]    = (TaskListPtr)allocate(<span class="keyword">sizeof</span>(TaskList));
+<a name="l00021"></a>00021         buff_inListData[i]  = (ListDataPtr)allocate(<span class="keyword">sizeof</span>(ListData));
+<a name="l00022"></a>00022         buff_outListData[i] = (ListDataPtr)allocate(<span class="keyword">sizeof</span>(ListData));
+<a name="l00023"></a>00023     }
+<a name="l00024"></a>00024     
+<a name="l00025"></a>00025     buffFlag_taskList = 0;
+<a name="l00026"></a>00026     buffFlag_inListData = 0;
+<a name="l00027"></a>00027     buffFlag_outListData = 0;
+<a name="l00028"></a>00028     flag_renewTaskList = 0;
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030     <span class="comment">// bzero Ǥ⤤</span>
+<a name="l00031"></a>00031     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAX_GLOBAL_AREA; i++) {
+<a name="l00032"></a>00032         globalList[i] = NULL;
+<a name="l00033"></a>00033     }
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAX_MAINMEM_AREA; i++) {
+<a name="l00036"></a>00036         mainMemList[i] = NULL;
+<a name="l00037"></a>00037     }
+<a name="l00038"></a>00038     
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     taskGroup = <span class="keyword">new</span> TaskGroup;
+<a name="l00041"></a>00041     renewTop_taskList = NULL;
+<a name="l00042"></a>00042     renewCur_taskList = NULL;
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="keywordtype">void</span>
+<a name="l00046"></a>00046 Scheduler::run(<span class="keywordtype">void</span>)
+<a name="l00047"></a>00047 {
+<a name="l00048"></a>00048     SchedTaskBase* taskTmp;
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050     task1 = <span class="keyword">new</span> SchedNop();
+<a name="l00051"></a>00051     task2 = <span class="keyword">new</span> SchedNop();
+<a name="l00052"></a>00052     task3 = <span class="keyword">new</span> SchedNop();
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054     <span class="comment">// main loop</span>
+<a name="l00055"></a>00055     <span class="keywordflow">do</span> {
+<a name="l00056"></a>00056         __debug(<span class="stringliteral">"----------\n"</span>);
+<a name="l00057"></a>00057         task3-&gt;write();
+<a name="l00058"></a>00058         task2-&gt;exec();
+<a name="l00059"></a>00059         task1-&gt;read();
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061         taskTmp = task3;
+<a name="l00062"></a>00062         task3 = task2;
+<a name="l00063"></a>00063         task2 = task1;
+<a name="l00064"></a>00064         task1 = task1-&gt;next(<span class="keyword">this</span>, taskTmp);
+<a name="l00065"></a>00065     } <span class="keywordflow">while</span> (task1);
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067     <span class="keyword">delete</span> task3;
+<a name="l00068"></a>00068     <span class="keyword">delete</span> task2;
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="keywordtype">void</span>
+<a name="l00073"></a>00073 Scheduler::finish(<span class="keywordtype">void</span>)
+<a name="l00074"></a>00074 {
+<a name="l00075"></a>00075     free(buff_taskList[0]);
+<a name="l00076"></a>00076     free(buff_taskList[1]);
+<a name="l00077"></a>00077     free(buff_inListData[0]);
+<a name="l00078"></a>00078     free(buff_inListData[1]);
+<a name="l00079"></a>00079     free(buff_outListData[0]);
+<a name="l00080"></a>00080     free(buff_outListData[1]);
+<a name="l00081"></a>00081 }
+<a name="l00082"></a>00082 
+<a name="l00087"></a>00087 TaskListPtr
+<a name="l00088"></a>00088 Scheduler::get_curListBuf(<span class="keywordtype">void</span>)
+<a name="l00089"></a>00089 {
+<a name="l00090"></a>00090     buffFlag_taskList ^= 1;
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092     <span class="keywordflow">return</span> buff_taskList[buffFlag_taskList];
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 
+<a name="l00100"></a>00100 ListDataPtr
+<a name="l00101"></a>00101 Scheduler::get_curWriteBuf(<span class="keywordtype">void</span>)
+<a name="l00102"></a>00102 {
+<a name="l00103"></a>00103     buffFlag_outListData ^= 1;
+<a name="l00104"></a>00104     <span class="keywordflow">return</span> buff_outListData[buffFlag_outListData];
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107 
+<a name="l00108"></a>00108 ListDataPtr
+<a name="l00109"></a>00109 Scheduler::get_curReadBuf(<span class="keywordtype">void</span>)
+<a name="l00110"></a>00110 {
+<a name="l00111"></a>00111     buffFlag_inListData ^= 1;
+<a name="l00112"></a>00112     <span class="keywordflow">return</span> buff_inListData[buffFlag_inListData];
+<a name="l00113"></a>00113 }
+<a name="l00114"></a>00114 
+<a name="l00124"></a>00124 TaskListPtr
+<a name="l00125"></a>00125 Scheduler::get_renewListBuf(<span class="keywordtype">void</span>)
+<a name="l00126"></a>00126 {
+<a name="l00127"></a>00127     <span class="keywordflow">if</span> (renewCur_taskList &amp;&amp; renewCur_taskList-&gt;length &lt; TASK_MAX_SIZE) {
+<a name="l00128"></a>00128         <span class="keywordflow">return</span> renewCur_taskList;
+<a name="l00129"></a>00129     } <span class="keywordflow">else</span> {
+<a name="l00130"></a>00130         TaskListPtr newList = (TaskListPtr)allocate(<span class="keyword">sizeof</span>(TaskList));
+<a name="l00131"></a>00131         newList-&gt;length = 0;
+<a name="l00132"></a>00132         newList-&gt;next = NULL;
+<a name="l00133"></a>00133         renewTop_taskList = TaskList::append(renewTop_taskList, newList);
+<a name="l00134"></a>00134         renewCur_taskList = newList;
+<a name="l00135"></a>00135         <span class="keywordflow">return</span> newList;
+<a name="l00136"></a>00136     }
+<a name="l00137"></a>00137 }
+<a name="l00138"></a>00138 
+<a name="l00147"></a>00147 SchedTaskList*
+<a name="l00148"></a>00148 Scheduler::get_nextRenewTaskList(<span class="keywordtype">void</span>)
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150     <span class="keywordflow">if</span> (renewTop_taskList) {
+<a name="l00151"></a>00151         TaskListPtr list  = renewTop_taskList;
+<a name="l00152"></a>00152         renewTop_taskList = renewTop_taskList-&gt;next;
+<a name="l00153"></a>00153         renewCur_taskList = NULL;
+<a name="l00154"></a>00154 
+<a name="l00155"></a>00155         list-&gt;next = NULL;
+<a name="l00156"></a>00156         SchedTaskList *sched
+<a name="l00157"></a>00157             = createSchedTaskList((uint32)list, <span class="keyword">this</span>, SCHED_TASKLIST_RENEW);
+<a name="l00158"></a>00158         <span class="keywordflow">return</span> sched;
+<a name="l00159"></a>00159     } <span class="keywordflow">else</span> {
+<a name="l00160"></a>00160         <span class="keywordflow">return</span> NULL;
+<a name="l00161"></a>00161     }
+<a name="l00162"></a>00162 }
+<a name="l00163"></a>00163 
+<a name="l00164"></a>00164 <span class="keywordtype">void</span>
+<a name="l00165"></a>00165 Scheduler::set_backupTaskList(TaskListPtr cur_taskList)
+<a name="l00166"></a>00166 {
+<a name="l00167"></a>00167     bak_curTaskList = cur_taskList;
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170 <span class="keywordtype">void</span>
+<a name="l00171"></a>00171 Scheduler::set_backupTaskListIndex(<span class="keywordtype">int</span> cur_index)
+<a name="l00172"></a>00172 {
+<a name="l00173"></a>00173     bakIndex_taskList = cur_index;
+<a name="l00174"></a>00174 }
+<a name="l00175"></a>00175 
+<a name="l00182"></a>00182 TaskListPtr
+<a name="l00183"></a>00183 Scheduler::get_backupTaskList(<span class="keywordtype">void</span>)
+<a name="l00184"></a>00184 {
+<a name="l00185"></a>00185     TaskListPtr ret = bak_curTaskList;
+<a name="l00186"></a>00186     
+<a name="l00187"></a>00187     bak_curTaskList = NULL;
+<a name="l00188"></a>00188     <span class="keywordflow">return</span> ret;
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190 
+<a name="l00191"></a>00191 <span class="keywordtype">int</span>
+<a name="l00192"></a>00192 Scheduler::get_backupTaskListIndex(<span class="keywordtype">void</span>)
+<a name="l00193"></a>00193 {
+<a name="l00194"></a>00194     <span class="keywordtype">int</span> ret = bakIndex_taskList;
+<a name="l00195"></a>00195 
+<a name="l00196"></a>00196     bakIndex_taskList = 0;
+<a name="l00197"></a>00197     <span class="keywordflow">return</span> ret;
+<a name="l00198"></a>00198 }
+<a name="l00199"></a>00199 
+<a name="l00200"></a>00200 <span class="keywordtype">void</span>
+<a name="l00201"></a>00201 Scheduler::dma_load(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask)
+<a name="l00202"></a>00202 {
+<a name="l00203"></a>00203     connector-&gt;dma_load(buf, addr, size, mask);
+<a name="l00204"></a>00204 }
+<a name="l00205"></a>00205 
+<a name="l00206"></a>00206 <span class="keywordtype">void</span>
+<a name="l00207"></a>00207 Scheduler::dma_store(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask)
+<a name="l00208"></a>00208 {
+<a name="l00209"></a>00209     connector-&gt;dma_store(buf, addr, size, mask);
+<a name="l00210"></a>00210 }
+<a name="l00211"></a>00211 
+<a name="l00212"></a>00212 <span class="keywordtype">void</span>
+<a name="l00213"></a>00213 Scheduler::dma_wait(uint32 mask)
+<a name="l00214"></a>00214 {
+<a name="l00215"></a>00215     connector-&gt;dma_wait(mask);
+<a name="l00216"></a>00216 }
+<a name="l00217"></a>00217 
+<a name="l00218"></a>00218 <span class="keywordtype">void</span>
+<a name="l00219"></a>00219 Scheduler::dma_loadList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00220"></a>00220 {
+<a name="l00221"></a>00221     connector-&gt;dma_loadList(list, buff, mask);
+<a name="l00222"></a>00222 }
+<a name="l00223"></a>00223 
+<a name="l00224"></a>00224 
+<a name="l00225"></a>00225 <span class="keywordtype">void</span>
+<a name="l00226"></a>00226 Scheduler::dma_storeList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00227"></a>00227 {
+<a name="l00228"></a>00228     <span class="keywordflow">return</span> connector-&gt;dma_storeList(list, buff, mask);
+<a name="l00229"></a>00229 }
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231 <span class="keywordtype">void</span>
+<a name="l00232"></a>00232 Scheduler::mail_write(uint32 data)
+<a name="l00233"></a>00233 {
+<a name="l00234"></a>00234     connector-&gt;mail_write(data);
+<a name="l00235"></a>00235 }
+<a name="l00236"></a>00236 
+<a name="l00237"></a>00237 uint32
+<a name="l00238"></a>00238 Scheduler::mail_read(<span class="keywordtype">void</span>)
+<a name="l00239"></a>00239 {
+<a name="l00240"></a>00240     <span class="keywordflow">return</span> connector-&gt;mail_read();
+<a name="l00241"></a>00241 }
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243 TaskGroupPtr
+<a name="l00244"></a>00244 Scheduler::set_groupTask(uint32 command)
+<a name="l00245"></a>00245 {
+<a name="l00246"></a>00246     TaskGroupPtr ret = taskGroup;
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248     reload_groupTask();
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250     ret-&gt;command = command;
+<a name="l00251"></a>00251     <span class="keywordflow">return</span> ret;
+<a name="l00252"></a>00252 }
+<a name="l00253"></a>00253 
+<a name="l00254"></a>00254 <span class="keywordtype">void</span>
+<a name="l00255"></a>00255 Scheduler::add_groupTask(TaskGroupPtr group, TaskPtr task)
+<a name="l00256"></a>00256 {
+<a name="l00257"></a>00257     group-&gt;add(task);
+<a name="l00258"></a>00258 }
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260 <span class="keywordtype">void</span>
+<a name="l00261"></a>00261 Scheduler::remove_groupTask(TaskGroupPtr group, TaskPtr task)
+<a name="l00262"></a>00262 {
+<a name="l00263"></a>00263     group-&gt;remove(task);
+<a name="l00264"></a>00264 }
+<a name="l00265"></a>00265 
+<a name="l00266"></a>00266 <span class="keywordtype">void</span>
+<a name="l00267"></a>00267 Scheduler::reload_groupTask(<span class="keywordtype">void</span>)
+<a name="l00268"></a>00268 {
+<a name="l00269"></a>00269     taskGroup = <span class="keyword">new</span> TaskGroup;
+<a name="l00270"></a>00270 }
+<a name="l00271"></a>00271 
+<a name="l00272"></a>00272 uint32
+<a name="l00273"></a>00273 Scheduler::status_groupTask(TaskGroupPtr group)
+<a name="l00274"></a>00274 {
+<a name="l00275"></a>00275     <span class="keywordflow">return</span> group-&gt;status();
+<a name="l00276"></a>00276 }
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278 <span class="keywordtype">void</span>*
+<a name="l00279"></a>00279 Scheduler::global_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size)
+<a name="l00280"></a>00280 {
+<a name="l00281"></a>00281     globalList[id] = allocate(size);
+<a name="l00282"></a>00282     <span class="keywordflow">return</span> globalList[id];
+<a name="l00283"></a>00283 }
+<a name="l00284"></a>00284 
+<a name="l00285"></a>00285 <span class="keywordtype">void</span>*
+<a name="l00286"></a>00286 Scheduler::global_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
+<a name="l00287"></a>00287 {
+<a name="l00288"></a>00288     <span class="keywordflow">return</span> globalList[id];
+<a name="l00289"></a>00289 }
+<a name="l00290"></a>00290 
+<a name="l00291"></a>00291 <span class="keywordtype">void</span>
+<a name="l00292"></a>00292 Scheduler::global_free(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
+<a name="l00293"></a>00293 {
+<a name="l00294"></a>00294     free(globalList[<span class="keywordtype">id</span>]);
+<a name="l00295"></a>00295     globalList[id] = NULL;
+<a name="l00296"></a>00296 }
+<a name="l00297"></a>00297 
+<a name="l00302"></a>00302 <span class="keywordtype">void</span>*
+<a name="l00303"></a>00303 Scheduler::mainMem_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
+<a name="l00304"></a>00304 {
+<a name="l00305"></a>00305     <span class="keywordflow">return</span> mainMemList[id];
+<a name="l00306"></a>00306 }
+<a name="l00307"></a>00307 
+<a name="l00308"></a>00308 
+<a name="l00313"></a>00313 <span class="keywordtype">void</span>
+<a name="l00314"></a>00314 register_task(<span class="keywordtype">int</span> cmd, Scheduler::TaskObject task)
+<a name="l00315"></a>00315 {
+<a name="l00316"></a>00316     task_list[cmd] = task;
+<a name="l00317"></a>00317 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2TaskGroup_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskGroup.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskGroup.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "TaskGroup.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="keywordtype">void</span>
+<a name="l00004"></a>00004 TaskGroup::add(TaskPtr add_task) {
+<a name="l00005"></a>00005     TaskQueuePtr q = <span class="keyword">new</span> TaskQueue(add_task);
+<a name="l00006"></a>00006     group = TaskQueue::append(group, q);
+<a name="l00007"></a>00007 }
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 <span class="keywordtype">void</span>
+<a name="l00010"></a>00010 TaskGroup::remove(TaskPtr delete_task) {
+<a name="l00011"></a>00011     TaskQueuePtr p = group;
+<a name="l00012"></a>00012     TaskQueuePtr p1;
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014     <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span>;
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016     <span class="keywordflow">if</span> (p-&gt;task == delete_task) {
+<a name="l00017"></a>00017         group = group-&gt;next;
+<a name="l00018"></a>00018         <span class="keyword">delete</span> p;
+<a name="l00019"></a>00019     } <span class="keywordflow">else</span> {
+<a name="l00020"></a>00020         p1 = p-&gt;next;
+<a name="l00021"></a>00021         <span class="keywordflow">while</span> (p1 &amp;&amp; p1-&gt;task != delete_task) {
+<a name="l00022"></a>00022             p1 = p1-&gt;next;
+<a name="l00023"></a>00023             p = p-&gt;next;
+<a name="l00024"></a>00024         }
+<a name="l00025"></a>00025         <span class="keywordflow">if</span> (p1) {
+<a name="l00026"></a>00026             p-&gt;next = p1-&gt;next;
+<a name="l00027"></a>00027             <span class="keyword">delete</span> p1;
+<a name="l00028"></a>00028         }
+<a name="l00029"></a>00029     }
+<a name="l00030"></a>00030 }
+<a name="l00031"></a>00031 
+<a name="l00038"></a>00038 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
+<a name="l00039"></a>00039 TaskGroup::status(<span class="keywordtype">void</span>) {
+<a name="l00046"></a>00046 <span class="preprocessor">#if 1</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>    <span class="keywordflow">return</span> (group == NULL) * command;
+<a name="l00048"></a>00048 <span class="preprocessor">#else</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (group.empty()) {
+<a name="l00050"></a>00050         <span class="keywordflow">return</span> command;
+<a name="l00051"></a>00051     } <span class="keywordflow">else</span> {
+<a name="l00052"></a>00052         <span class="keywordflow">return</span> 0;
+<a name="l00053"></a>00053     }
+<a name="l00054"></a>00054 <span class="preprocessor">#endif</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span>}
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2TaskList_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskList.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskList.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "TaskList.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 TaskListPtr
+<a name="l00004"></a>00004 TaskList::append(TaskListPtr list, TaskListPtr q)
+<a name="l00005"></a>00005 {
+<a name="l00006"></a>00006     TaskListPtr p = list;
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008     <span class="keywordflow">if</span> (!p) {
+<a name="l00009"></a>00009         <span class="keywordflow">return</span> q;
+<a name="l00010"></a>00010     } <span class="keywordflow">else</span> {
+<a name="l00011"></a>00011         <span class="keywordflow">while</span> (p-&gt;next) p = p-&gt;next;
+<a name="l00012"></a>00012         p-&gt;next = q;
+<a name="l00013"></a>00013         <span class="keywordflow">return</span> list;
+<a name="l00014"></a>00014     }
+<a name="l00015"></a>00015 }
+<a name="l00016"></a>00016 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2TaskQueue_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskQueue.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskQueue.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "TaskQueue.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 TaskQueue::TaskQueue(TaskPtr q)
+<a name="l00004"></a>00004 {
+<a name="l00005"></a>00005     task = q;
+<a name="l00006"></a>00006     next = NULL;
+<a name="l00007"></a>00007 }
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 TaskQueuePtr
+<a name="l00010"></a>00010 TaskQueue::append(TaskQueuePtr list, TaskQueuePtr q)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012     TaskQueuePtr p = list;
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014     <span class="keywordflow">if</span> (!p) {
+<a name="l00015"></a>00015         <span class="keywordflow">return</span> q;
+<a name="l00016"></a>00016     } <span class="keywordflow">else</span> {
+<a name="l00017"></a>00017         <span class="keywordflow">while</span>(p-&gt;next) p = p-&gt;next;
+<a name="l00018"></a>00018         p-&gt;next = q;
+<a name="l00019"></a>00019         <span class="keywordflow">return</span> list;
+<a name="l00020"></a>00020     }
+<a name="l00021"></a>00021 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2Task_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: Task.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>Task.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "Task.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00011"></a>00011 <span class="keywordtype">int</span>
+<a name="l00012"></a>00012 Task::add_inData_t(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> addr, <span class="keywordtype">int</span> size)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014     <span class="keywordflow">return</span> add_data(this-&gt;inData, addr, size);
+<a name="l00015"></a>00015 }
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 <span class="keywordtype">int</span>
+<a name="l00018"></a>00018 Task::add_outData_t(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> addr, <span class="keywordtype">int</span> size)
+<a name="l00019"></a>00019 {
+<a name="l00020"></a>00020     <span class="keywordflow">return</span> add_data(this-&gt;outData, addr, size);
+<a name="l00021"></a>00021 }
+<a name="l00022"></a>00022 
+<a name="l00031"></a>00031 <span class="keywordtype">int</span>
+<a name="l00032"></a>00032 Task::add_param(<span class="keywordtype">int</span> _param)
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034     <span class="keywordflow">if</span> (param_size &gt;= MAX_PARAMS) <span class="keywordflow">return</span> -1;
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036     this-&gt;param[param_size++] = _param;
+<a name="l00037"></a>00037     <span class="keywordflow">return</span> 0;
+<a name="l00038"></a>00038 }
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="comment">/*</span>
+<a name="l00041"></a>00041 <span class="comment"> * 顼λ -1 ֤äƤȤ</span>
+<a name="l00042"></a>00042 <span class="comment"> * perror ߤˤۤ狼䤹ʡ</span>
+<a name="l00043"></a>00043 <span class="comment"> */</span>
+<a name="l00044"></a>00044 <span class="keywordtype">int</span>
+<a name="l00045"></a>00045 Task::add_data(ListDataPtr list, uint32 addr, <span class="keywordtype">int</span> size)
+<a name="l00046"></a>00046 {
+<a name="l00047"></a>00047     <span class="keywordflow">if</span> (list-&gt;length &gt;= MAX_LIST_DMA_SIZE) <span class="keywordflow">return</span> -1;
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049     list-&gt;bound[list-&gt;length] = list-&gt;size;
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051     <span class="comment">// size Ǥ¤٤</span>
+<a name="l00052"></a>00052     list-&gt;size += size;
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054     ListElementPtr elm = &amp;list-&gt;element[list-&gt;length++];
+<a name="l00055"></a>00055     elm-&gt;addr = addr;
+<a name="l00056"></a>00056     elm-&gt;size = size;
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058     <span class="keywordflow">return</span> 0;
+<a name="l00059"></a>00059 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Cell_2spe_2main_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: main.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>main.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "CellScheduler.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "spu_mfcio.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "error.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 <span class="keyword">extern</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> _end[];
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 <span class="keywordtype">int</span>
+<a name="l00009"></a>00009 main(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> speid,
+<a name="l00010"></a>00010      <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> argc, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> argv)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012     CellScheduler *manager;
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014     <span class="comment">//const unsigned ls_size   = (unsigned)&amp;argc;</span>
+<a name="l00015"></a>00015     <span class="comment">//unsigned code_size = (unsigned)&amp;_end;</span>
+<a name="l00016"></a>00016     <span class="comment">//unsigned heap_size = ls_size - code_size;</span>
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018     __debug(<span class="stringliteral">"  ls_size:%10d bytes\n"</span>, ls_size);
+<a name="l00019"></a>00019     __debug(<span class="stringliteral">"code_size:%10d bytes\n"</span>, code_size);
+<a name="l00020"></a>00020     __debug(<span class="stringliteral">"heap_size:%10d bytes\n"</span>, heap_size);
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022     manager = <span class="keyword">new</span> CellScheduler();
+<a name="l00023"></a>00023     manager-&gt;init();
+<a name="l00024"></a>00024     manager-&gt;id = (int)argc;
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026     spu_write_decrementer(0x7FFFFFFFU);
+<a name="l00027"></a>00027     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prof = spu_read_decrementer();
+<a name="l00028"></a>00028     manager-&gt;run();
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030     prof -= spu_read_decrementer();
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032     <span class="comment">//printf("%f\n", prof/79800000.0f*1000.0f);</span>
+<a name="l00033"></a>00033     
+<a name="l00034"></a>00034     manager-&gt;finish();
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036     <span class="keywordflow">return</span> 0;
+<a name="l00037"></a>00037 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/CreatePolygonFromSceneGraph_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CreatePolygonFromSceneGraph_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -34,7 +34,7 @@
 <a name="l00014"></a>00014 
 <a name="l00015"></a>00015 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/CreatePolygonPack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/CreatePolygonPack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -41,7 +41,7 @@
 <a name="l00021"></a>00021 
 <a name="l00022"></a>00022 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/DmaBuffer_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: DmaBuffer.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>DmaBuffer.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "types.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "DmaBuffer.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 <span class="preprocessor">#define ALIGN_DOWN(v, align) ((v)&amp;(-align))</span>
+<a name="l00007"></a>00007 <span class="preprocessor"></span><span class="preprocessor">#define ALIGN_UP(v, align)   ALIGN_DOWN((v)+((align)-1), align)</span>
+<a name="l00008"></a>00008 <span class="preprocessor"></span>
+<a name="l00009"></a>00009 <span class="keywordtype">void</span>*
+<a name="l00010"></a>00010 new_align(<span class="keywordtype">int</span> alignment, <span class="keywordtype">int</span> size)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012     <span class="keywordtype">char</span> *nonalign;
+<a name="l00013"></a>00013     <span class="keywordtype">char</span> *align;
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015     nonalign = <span class="keyword">new</span> <span class="keywordtype">char</span>[size + <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*) + alignment - 1];
+<a name="l00016"></a>00016     align = (<span class="keywordtype">char</span>*)(ALIGN_UP((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)nonalign+<span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*),alignment));
+<a name="l00017"></a>00017     *((<span class="keywordtype">void</span>**)align - 1) = (<span class="keywordtype">void</span>*)nonalign;
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019     <span class="keywordflow">return</span> align;
+<a name="l00020"></a>00020 }
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 <span class="keywordtype">void</span>
+<a name="l00023"></a>00023 free_align(<span class="keywordtype">void</span> *ptr)
+<a name="l00024"></a>00024 {
+<a name="l00025"></a>00025     <span class="keywordtype">char</span> *real;
+<a name="l00026"></a>00026 
+<a name="l00027"></a>00027     <span class="keywordflow">if</span> (ptr != NULL) {
+<a name="l00028"></a>00028         real = (<span class="keywordtype">char</span>*)(*((<span class="keywordtype">void</span>**)(ptr)-1));
+<a name="l00029"></a>00029         <span class="keyword">delete</span> real;
+<a name="l00030"></a>00030     }
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 DmaBuffer::DmaBuffer(<span class="keywordtype">int</span> size)
+<a name="l00034"></a>00034 {
+<a name="l00035"></a>00035     buffer[0] = malloc(size);
+<a name="l00036"></a>00036     buffer[1] = malloc(size);
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038     <span class="comment">//posix_memalign(&amp;buffer[0], DEFAULT_ALIGNMENT, size);</span>
+<a name="l00039"></a>00039     <span class="comment">//posix_memalign(&amp;buffer[1], DEFAULT_ALIGNMENT, size);</span>
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041     <span class="comment">//buffer[0] = new_align(DEFAULT_ALIGNMENT, size);</span>
+<a name="l00042"></a>00042     <span class="comment">//buffer[1] = new_align(DEFAULT_ALIGNMENT, size);</span>
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044     flag = 0;
+<a name="l00045"></a>00045 }
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047 DmaBuffer::~DmaBuffer(<span class="keywordtype">void</span>)
+<a name="l00048"></a>00048 {
+<a name="l00049"></a>00049     <span class="comment">//free(buffer[0]);</span>
+<a name="l00050"></a>00050     <span class="comment">//free(buffer[1]);</span>
+<a name="l00051"></a>00051     free_align(buffer[0]);
+<a name="l00052"></a>00052     free_align(buffer[1]);
+<a name="l00053"></a>00053 }
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055 <span class="keywordtype">void</span>
+<a name="l00056"></a>00056 DmaBuffer::swap_buffer(<span class="keywordtype">void</span>)
+<a name="l00057"></a>00057 {
+<a name="l00058"></a>00058     flag ^= 1;
+<a name="l00059"></a>00059 }
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061 <span class="keywordtype">void</span>
+<a name="l00062"></a>00062 DmaBuffer::get_buffer(<span class="keywordtype">void</span> *_dst)
+<a name="l00063"></a>00063 {
+<a name="l00064"></a>00064     <span class="keywordtype">void</span> **dst = (<span class="keywordtype">void</span>**)_dst;
+<a name="l00065"></a>00065     *dst = buffer[flag];
+<a name="l00066"></a>00066 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/DmaBuffer_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/DmaBuffer_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -44,7 +44,7 @@
 <a name="l00024"></a>00024 
 <a name="l00025"></a>00025 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/DmaManager_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/DmaManager_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -64,7 +64,7 @@
 <a name="l00044"></a>00044 
 <a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/FifoDmaManager_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,135 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: FifoDmaManager.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>FifoDmaManager.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "FifoDmaManager.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 <span class="keywordtype">void</span>
+<a name="l00007"></a>00007 FifoDmaManager::dma_load(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     <span class="keywordflow">if</span> (size == 0) <span class="keywordflow">return</span>;
+<a name="l00010"></a>00010     memcpy(buf, (<span class="keywordtype">void</span>*)addr, size);
+<a name="l00011"></a>00011 }
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 <span class="keywordtype">void</span>
+<a name="l00014"></a>00014 FifoDmaManager::dma_store(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask)
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016     <span class="keywordflow">if</span> (size == 0) <span class="keywordflow">return</span>;
+<a name="l00017"></a>00017     memcpy((<span class="keywordtype">void</span>*)addr, buf, size);
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 
+<a name="l00023"></a>00023 <span class="keywordtype">void</span>
+<a name="l00024"></a>00024 FifoDmaManager::dma_wait(uint32 mask)
+<a name="l00025"></a>00025 {
+<a name="l00026"></a>00026     <span class="comment">//spu_writech(MFC_WrTagMask, 1 &lt;&lt; mask);</span>
+<a name="l00027"></a>00027     <span class="comment">//spu_mfcstat(MFC_TAG_UPDATE_ALL);</span>
+<a name="l00028"></a>00028 }
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 <span class="keywordtype">void</span>
+<a name="l00031"></a>00031 FifoDmaManager::mail_write(uint32 data)
+<a name="l00032"></a>00032 {
+<a name="l00033"></a>00033     mail_sendQueue
+<a name="l00034"></a>00034         = MailManager::append_mailQueue(mail_sendQueue,
+<a name="l00035"></a>00035                                         mailManager-&gt;create(data));
+<a name="l00036"></a>00036 }
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
+<a name="l00039"></a>00039 FifoDmaManager::mail_read(<span class="keywordtype">void</span>)
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041     MailQueuePtr q;
+<a name="l00042"></a>00042     uint32 ret;
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044     q = mail_recvQueue;
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046     <span class="keywordflow">if</span> (q == NULL) {
+<a name="l00047"></a>00047         <span class="keywordflow">return</span> 0; <span class="comment">// error  ͤȽǤǤʤʡ</span>
+<a name="l00048"></a>00048     }
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050     mail_recvQueue = mail_recvQueue-&gt;next;
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052     ret = q-&gt;data;
+<a name="l00053"></a>00053     mailManager-&gt;free(q);
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     <span class="keywordflow">return</span> ret;
+<a name="l00056"></a>00056 }
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058 <span class="keywordtype">void</span>
+<a name="l00059"></a>00059 FifoDmaManager::dma_loadList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00060"></a>00060 {
+<a name="l00061"></a>00061     <span class="keywordtype">int</span> list_size = list-&gt;length;
+<a name="l00062"></a>00062     <span class="keywordtype">int</span> bound;
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064     bound = (int)(buff);
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; list_size; i++) {
+<a name="l00067"></a>00067         ListElementPtr elm = &amp;list-&gt;element[i];
+<a name="l00068"></a>00068         memcpy((<span class="keywordtype">void</span>*)bound, (<span class="keywordtype">void</span>*)elm-&gt;addr, elm-&gt;size);
+<a name="l00069"></a>00069         bound += elm-&gt;size;
+<a name="l00070"></a>00070     }
+<a name="l00071"></a>00071 }
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073 <span class="preprocessor">#if 0</span>
+<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="keywordtype">void</span>*
+<a name="l00075"></a>00075 FifoDmaManager::dma_loadList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077     <span class="keywordtype">void</span> **buffList;
+<a name="l00078"></a>00078     <span class="keywordtype">int</span> bound;
+<a name="l00079"></a>00079 
+<a name="l00080"></a>00080     dma_wait(mask);
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082     <span class="keywordflow">if</span> (list-&gt;length == 1) {
+<a name="l00083"></a>00083         <span class="keywordflow">return</span> buff;
+<a name="l00084"></a>00084     }
+<a name="l00085"></a>00085 
+<a name="l00086"></a>00086     bound = (int)buff;
+<a name="l00087"></a>00087     buffList = (<span class="keywordtype">void</span>**)malloc(list-&gt;length);
+<a name="l00088"></a>00088     buffList[0] = (<span class="keywordtype">void</span>*)bound;
+<a name="l00089"></a>00089 
+<a name="l00090"></a>00090     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i &lt; list-&gt;length; i++) {
+<a name="l00091"></a>00091         bound += list-&gt;element[i-1].size;
+<a name="l00092"></a>00092         buffList[i] = (<span class="keywordtype">void</span>*)(bound);
+<a name="l00093"></a>00093     }
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095     <span class="keywordflow">return</span> (<span class="keywordtype">void</span>*)buffList;
+<a name="l00096"></a>00096 }
+<a name="l00097"></a>00097 <span class="preprocessor">#endif</span>
+<a name="l00098"></a>00098 <span class="preprocessor"></span>
+<a name="l00099"></a>00099 <span class="keywordtype">void</span>
+<a name="l00100"></a>00100 FifoDmaManager::dma_storeList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00101"></a>00101 {
+<a name="l00102"></a>00102     <span class="keywordtype">int</span> list_size = list-&gt;length;
+<a name="l00103"></a>00103     <span class="keywordtype">int</span> bound;
+<a name="l00104"></a>00104 
+<a name="l00105"></a>00105     bound = (int)(buff);
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; list_size; i++) {
+<a name="l00108"></a>00108         ListElementPtr elm = &amp;list-&gt;element[i];
+<a name="l00109"></a>00109         memcpy((<span class="keywordtype">void</span>*)elm-&gt;addr, (<span class="keywordtype">void</span>*)bound, elm-&gt;size);
+<a name="l00110"></a>00110         bound += elm-&gt;size;
+<a name="l00111"></a>00111     }    
+<a name="l00112"></a>00112 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/FifoDmaManager_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/FifoDmaManager_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -57,7 +57,7 @@
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/FifoTaskManagerImpl_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: FifoTaskManagerImpl.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>FifoTaskManagerImpl.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "FifoTaskManagerImpl.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "types.h"</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include "error.h"</span>
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 FifoTaskManagerImpl::~FifoTaskManagerImpl(<span class="keywordtype">void</span>)
+<a name="l00009"></a>00009 {
+<a name="l00010"></a>00010     <span class="keyword">delete</span> mailManager;
+<a name="l00011"></a>00011     <span class="keyword">delete</span> scheduler;
+<a name="l00012"></a>00012     <span class="keyword">delete</span> bufferManager;
+<a name="l00013"></a>00013 }
+<a name="l00014"></a>00014 
+<a name="l00020"></a>00020 <span class="keywordtype">void</span>
+<a name="l00021"></a>00021 FifoTaskManagerImpl::init(<span class="keywordtype">void</span>)
+<a name="l00022"></a>00022 {
+<a name="l00023"></a>00023     mailManager = <span class="keyword">new</span> MailManager();
+<a name="l00024"></a>00024     mailManager-&gt;init(20);
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026     scheduler = <span class="keyword">new</span> MainScheduler();
+<a name="l00027"></a>00027     scheduler-&gt;init();
+<a name="l00028"></a>00028     scheduler-&gt;set_mailManager(mailManager);
+<a name="l00029"></a>00029     scheduler-&gt;id = 0;
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031     bufferManager = <span class="keyword">new</span> <a class="code" href="classBufferManager.html">BufferManager</a>;
+<a name="l00032"></a>00032     bufferManager-&gt;init();
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034     mainTaskList = bufferManager-&gt;create_taskList();
+<a name="l00035"></a>00035 }
+<a name="l00036"></a>00036 
+<a name="l00043"></a>00043 <span class="keywordtype">void</span>
+<a name="l00044"></a>00044 FifoTaskManagerImpl::init(MainScheduler *_sched, <a class="code" href="classBufferManager.html">BufferManager</a> *buff)
+<a name="l00045"></a>00045 {
+<a name="l00046"></a>00046     mailManager = <span class="keyword">new</span> MailManager();
+<a name="l00047"></a>00047     mailManager-&gt;init(20);
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049     <span class="comment">//scheduler = new MainScheduler();</span>
+<a name="l00050"></a>00050     scheduler = _sched;
+<a name="l00051"></a>00051     scheduler-&gt;init();
+<a name="l00052"></a>00052     scheduler-&gt;set_mailManager(mailManager);
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054     bufferManager = buff;
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056     mainTaskList = bufferManager-&gt;<a class="code" href="classBufferManager.html#9dd8ede25545cff6ab9e1bb6936967d1">create_taskList</a>();
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 
+<a name="l00067"></a>00067 TaskListPtr
+<a name="l00068"></a>00068 FifoTaskManagerImpl::get_runTaskList(<span class="keywordtype">void</span>)
+<a name="l00069"></a>00069 {
+<a name="l00070"></a>00070     TaskListPtr list, list_top;
+<a name="l00071"></a>00071     TaskQueuePtr queue;
+<a name="l00072"></a>00072     TaskQueuePtr d;
+<a name="l00073"></a>00073     HTaskPtr htask; <span class="comment">// HTask (PPE ˤ)</span>
+<a name="l00074"></a>00074     TaskPtr task; <span class="comment">// Task (SPE  Task)</span>
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076     queue = activeTaskQueue;
+<a name="l00077"></a>00077     <span class="keywordflow">if</span> (queue == NULL) {
+<a name="l00078"></a>00078         <span class="keywordflow">return</span> NULL;
+<a name="l00079"></a>00079     }
+<a name="l00080"></a>00080 
+<a name="l00081"></a>00081     <span class="comment">// PPE ¦Ǽ¹Ԥ TaskList</span>
+<a name="l00082"></a>00082     list_top = mainTaskList;
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084     <span class="comment">// list_top-&gt;clear() Ȥ⤷</span>
+<a name="l00085"></a>00085     list_top = bufferManager-&gt;clear_taskList(list_top);
+<a name="l00086"></a>00086     list = list_top;
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088     <span class="keywordflow">while</span> (queue) {
+<a name="l00089"></a>00089         htask = (HTaskPtr)queue-&gt;task;
+<a name="l00090"></a>00090         d = queue;
+<a name="l00091"></a>00091         queue = queue-&gt;next;
+<a name="l00092"></a>00092 
+<a name="l00093"></a>00093         task = &amp;list-&gt;tasks[list-&gt;length++];
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 #<span class="keywordflow">if</span> 0
+<a name="l00096"></a>00096         task-&gt;command  = htask-&gt;command;
+<a name="l00097"></a>00097         task-&gt;inData   = htask-&gt;inData;
+<a name="l00098"></a>00098         task-&gt;outData  = htask-&gt;outData;
+<a name="l00099"></a>00099         task-&gt;self     = (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)htask;
+<a name="l00100"></a>00100 <span class="preprocessor">#else</span>
+<a name="l00101"></a>00101 <span class="preprocessor"></span>        memcpy(task, htask, <span class="keyword">sizeof</span>(Task));
+<a name="l00102"></a>00102 <span class="preprocessor">#endif</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span>
+<a name="l00104"></a>00104         <span class="keywordflow">if</span> (list-&gt;length &gt;= TASK_MAX_SIZE) {
+<a name="l00105"></a>00105             TaskListPtr newList = bufferManager-&gt;create_taskList();
+<a name="l00106"></a>00106             list_top = TaskListInfo::append(list_top, newList);
+<a name="l00107"></a>00107             list = newList;
+<a name="l00108"></a>00108         }
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110         bufferManager-&gt;free_taskQueue(d);
+<a name="l00111"></a>00111     }
+<a name="l00112"></a>00112 
+<a name="l00113"></a>00113     activeTaskQueue = NULL;
+<a name="l00114"></a>00114     mainTaskList = list_top;
+<a name="l00115"></a>00115 
+<a name="l00116"></a>00116     <span class="keywordflow">return</span> list_top;
+<a name="l00117"></a>00117 }
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119 
+<a name="l00120"></a>00120 <span class="keywordtype">void</span>
+<a name="l00121"></a>00121 FifoTaskManagerImpl::run(<span class="keywordtype">void</span>)
+<a name="l00122"></a>00122 {
+<a name="l00123"></a>00123     TaskListPtr list;
+<a name="l00124"></a>00124     MailQueuePtr mail;
+<a name="l00125"></a>00125 
+<a name="l00126"></a>00126     list = get_runTaskList();
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128     <span class="keywordflow">do</span> {
+<a name="l00129"></a>00129         <span class="comment">// list ¹Ԥ</span>
+<a name="l00130"></a>00130         mail = schedule(list);
+<a name="l00131"></a>00131 
+<a name="l00132"></a>00132         <span class="comment">// mail ˤϡppe scheduler  mail </span>
+<a name="l00133"></a>00133         mail_check(mail);
+<a name="l00134"></a>00134 
+<a name="l00135"></a>00135         <span class="comment">// ¸طΤϼ¹Բǽ塼</span>
+<a name="l00136"></a>00136         wakeup_waitTask();
+<a name="l00137"></a>00137         list = get_runTaskList();
+<a name="l00138"></a>00138     } <span class="keywordflow">while</span> (list);
+<a name="l00139"></a>00139 }
+<a name="l00140"></a>00140 
+<a name="l00147"></a>00147 MailQueuePtr
+<a name="l00148"></a>00148 FifoTaskManagerImpl::schedule(TaskListPtr list)
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150     MailQueuePtr list_mail; <span class="comment">// task list</span>
+<a name="l00151"></a>00151     MailQueuePtr sentinel;  <span class="comment">// ʼ</span>
+<a name="l00152"></a>00152     MailQueuePtr in_mail_list = NULL;
+<a name="l00153"></a>00153     MailQueuePtr out_mail_list = NULL;
+<a name="l00154"></a>00154 
+<a name="l00155"></a>00155     <span class="comment">// TaskList Υɥ쥹</span>
+<a name="l00156"></a>00156     list_mail = mailManager-&gt;create((<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)list);
+<a name="l00157"></a>00157     in_mail_list = MailManager::append_mailQueue(in_mail_list, list_mail);
+<a name="l00158"></a>00158 
+<a name="l00159"></a>00159     <span class="comment">// EXIT_COMMAND (ʼŪʰ̣)</span>
+<a name="l00160"></a>00160     sentinel  = mailManager-&gt;create(MY_SPE_COMMAND_EXIT);
+<a name="l00161"></a>00161     in_mail_list = MailManager::append_mailQueue(in_mail_list, sentinel);
+<a name="l00162"></a>00162     
+<a name="l00163"></a>00163     <span class="comment">// scheduler ϼä᡼򸵤˼¹Ԥ</span>
+<a name="l00164"></a>00164     scheduler-&gt;send_mailList(in_mail_list);
+<a name="l00165"></a>00165     scheduler-&gt;run();
+<a name="l00166"></a>00166     out_mail_list = scheduler-&gt;recv_mailList(); 
+<a name="l00167"></a>00167 
+<a name="l00168"></a>00168     <span class="keywordflow">return</span> out_mail_list;
+<a name="l00169"></a>00169 }
+<a name="l00170"></a>00170 
+<a name="l00181"></a>00181 <span class="keywordtype">void</span>
+<a name="l00182"></a>00182 FifoTaskManagerImpl::mail_check(MailQueuePtr mail_list)
+<a name="l00183"></a>00183 {
+<a name="l00184"></a>00184     MailQueuePtr q = mail_list;
+<a name="l00185"></a>00185     MailQueuePtr d;
+<a name="l00186"></a>00186     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> data;
+<a name="l00187"></a>00187 
+<a name="l00188"></a>00188     <span class="keywordflow">while</span> (q) {
+<a name="l00189"></a>00189         data = q-&gt;data;
+<a name="l00190"></a>00190 
+<a name="l00200"></a>00200         <span class="keywordflow">if</span> (data == MY_SPE_STATUS_READY) {
+<a name="l00201"></a>00201             __debug_ppe(<span class="stringliteral">"mail_check(): Task List finish\n"</span>);
+<a name="l00202"></a>00202         } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (data &gt; MY_SPE_NOP) {
+<a name="l00203"></a>00203             __debug_ppe(<span class="stringliteral">"mail_check(): recv from 0x%x\n"</span>, data);
+<a name="l00204"></a>00204             check_task_finish((HTaskPtr)data);
+<a name="l00205"></a>00205         }
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207         d = q;
+<a name="l00208"></a>00208         q = q-&gt;next;
+<a name="l00209"></a>00209 
+<a name="l00210"></a>00210         mailManager-&gt;free(d);
+<a name="l00211"></a>00211     }
+<a name="l00212"></a>00212 }
+<a name="l00213"></a>00213 
+<a name="l00214"></a>00214 <span class="keywordtype">void</span>
+<a name="l00215"></a>00215 FifoTaskManagerImpl::mail_check(MailQueuePtr mail_list, TaskQueuePtr *wait)
+<a name="l00216"></a>00216 {
+<a name="l00217"></a>00217     waitTaskQueue = *wait;
+<a name="l00218"></a>00218     mail_check(mail_list);
+<a name="l00219"></a>00219 }
+<a name="l00220"></a>00220 
+<a name="l00221"></a>00221 <span class="keywordtype">void</span>*
+<a name="l00222"></a>00222 FifoTaskManagerImpl::allocate(<span class="keywordtype">int</span> size)
+<a name="l00223"></a>00223 {
+<a name="l00224"></a>00224     <span class="keywordflow">return</span> malloc(size);
+<a name="l00225"></a>00225 }
+<a name="l00226"></a>00226 
+<a name="l00232"></a>00232 <span class="preprocessor">#ifdef __CERIUM_FIFO__</span>
+<a name="l00233"></a>00233 <span class="preprocessor"></span>TaskManagerImpl* 
+<a name="l00234"></a>00234 create_impl(<span class="keywordtype">int</span> num)
+<a name="l00235"></a>00235 {
+<a name="l00236"></a>00236     <span class="keywordflow">return</span> <span class="keyword">new</span> FifoTaskManagerImpl();
+<a name="l00237"></a>00237 }
+<a name="l00238"></a>00238 <span class="preprocessor">#endif // __CERIUM_FIFO__</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/FifoTaskManagerImpl_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/FifoTaskManagerImpl_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -45,7 +45,7 @@
 <a name="l00025"></a>00025     <span class="comment">/* functions */</span>
 <a name="l00026"></a>00026     <span class="comment">// call by system</span>
 <a name="l00027"></a>00027     <span class="keywordtype">void</span> init(<span class="keywordtype">void</span>);
-<a name="l00028"></a>00028     <span class="keywordtype">void</span> init(MainScheduler*, BufferManager*);
+<a name="l00028"></a>00028     <span class="keywordtype">void</span> init(MainScheduler*, <a class="code" href="classBufferManager.html">BufferManager</a>*);
 <a name="l00029"></a>00029     <span class="keywordtype">void</span> run(<span class="keywordtype">void</span>);
 <a name="l00030"></a>00030     <span class="keywordtype">void</span> mail_check(MailQueuePtr mail_list);
 <a name="l00031"></a>00031     <span class="keywordtype">void</span> mail_check(MailQueuePtr mail_list, TaskQueuePtr *waitQueue);
@@ -64,7 +64,7 @@
 <a name="l00044"></a>00044 
 <a name="l00045"></a>00045 <span class="preprocessor">#endif </span><span class="comment">/* INCLUDED_FIFO_TASK_MANAGER_IMPL */</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Finish_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: Finish.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>Finish.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "Finish.h"</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SysTask.h"</span>
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 SchedDefineTask(Finish);
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 <span class="keywordtype">int</span>
+<a name="l00007"></a>00007 Finish::run(<span class="keywordtype">void</span> *rbuf, <span class="keywordtype">void</span> *wbuf)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     <span class="keywordflow">return</span> 0;
+<a name="l00010"></a>00010 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/Finish_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Finish_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -34,7 +34,7 @@
 <a name="l00014"></a>00014 
 <a name="l00015"></a>00015 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/HTaskInfo_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: HTaskInfo.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>HTaskInfo.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "TaskManagerImpl.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "HTaskInfo.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 HTaskInfo::HTaskInfo(<span class="keywordtype">void</span>)
+<a name="l00007"></a>00007     :htaskPool(NULL), freeHTask(NULL) {}
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 HTaskInfo::~HTaskInfo(<span class="keywordtype">void</span>) { destroy(); }
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 <span class="keywordtype">int</span>
+<a name="l00012"></a>00012 HTaskInfo::init(<span class="keywordtype">int</span> num)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014     <span class="keywordflow">if</span> (htaskPool == NULL) {
+<a name="l00015"></a>00015         <span class="keywordflow">return</span> extend_pool(num);
+<a name="l00016"></a>00016     }
+<a name="l00017"></a>00017     <span class="keywordflow">return</span> 0;
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 
+<a name="l00024"></a>00024 <span class="keywordtype">int</span>
+<a name="l00025"></a>00025 HTaskInfo::extend_pool(<span class="keywordtype">int</span> num)
+<a name="l00026"></a>00026 {
+<a name="l00027"></a>00027     HTaskPtr q = NULL;
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029     q = (HTaskPtr)malloc(<span class="keyword">sizeof</span>(HTask)*(num+1));
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031     <span class="keywordflow">if</span> (q == NULL) {
+<a name="l00032"></a>00032         <span class="keywordflow">return</span> -1;
+<a name="l00033"></a>00033     }
+<a name="l00034"></a>00034     q-&gt;next = htaskPool;
+<a name="l00035"></a>00035     htaskPool = q;
+<a name="l00036"></a>00036 
+<a name="l00037"></a>00037     <span class="comment">/* Connect all free queue in the pool */</span>
+<a name="l00038"></a>00038     <span class="keywordflow">for</span> (q = htaskPool + 1; --num &gt; 0; q++) {
+<a name="l00039"></a>00039         q-&gt;next = q + 1;
+<a name="l00040"></a>00040         q-&gt;inData = (ListDataPtr)malloc(<span class="keyword">sizeof</span>(ListData));
+<a name="l00041"></a>00041         q-&gt;outData = (ListDataPtr)malloc(<span class="keyword">sizeof</span>(ListData));
+<a name="l00042"></a>00042     }
+<a name="l00043"></a>00043     q-&gt;next = freeHTask;
+<a name="l00044"></a>00044     q-&gt;inData = (ListDataPtr)malloc(<span class="keyword">sizeof</span>(ListData));
+<a name="l00045"></a>00045     q-&gt;outData = (ListDataPtr)malloc(<span class="keyword">sizeof</span>(ListData));
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047     freeHTask = htaskPool + 1;
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049     <span class="keywordflow">return</span> 0;
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051 
+<a name="l00057"></a>00057 HTaskPtr
+<a name="l00058"></a>00058 HTaskInfo::create(<span class="keywordtype">int</span> cmd)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060     HTaskPtr q;
+<a name="l00061"></a>00061     
+<a name="l00062"></a>00062     <span class="keywordflow">if</span> (freeHTask == NULL) {
+<a name="l00063"></a>00063         extend_pool(100);
+<a name="l00064"></a>00064     }
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066     q = freeHTask;
+<a name="l00067"></a>00067     freeHTask = freeHTask-&gt;next;
+<a name="l00068"></a>00068 
+<a name="l00069"></a>00069     q-&gt;command  = cmd;
+<a name="l00070"></a>00070     q-&gt;inData-&gt;clear();
+<a name="l00071"></a>00071     q-&gt;outData-&gt;clear();
+<a name="l00072"></a>00072     q-&gt;self = (<span class="keywordtype">unsigned</span> int)q;
+<a name="l00073"></a>00073     q-&gt;param_size = 0;
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075     q-&gt;wait_me  = NULL;
+<a name="l00076"></a>00076     q-&gt;wait_i   = NULL;
+<a name="l00077"></a>00077     q-&gt;post_func = NULL;
+<a name="l00078"></a>00078     q-&gt;mimpl     = NULL;
+<a name="l00079"></a>00079     q-&gt;cpu_type  = CPU_PPE;
+<a name="l00080"></a>00080 
+<a name="l00081"></a>00081     <span class="keywordflow">return</span> q;
+<a name="l00082"></a>00082 }
+<a name="l00083"></a>00083 
+<a name="l00084"></a>00084 <span class="keywordtype">void</span>
+<a name="l00085"></a>00085 HTaskInfo::free(HTaskPtr q)
+<a name="l00086"></a>00086 {
+<a name="l00087"></a>00087     q-&gt;next = freeHTask;
+<a name="l00088"></a>00088     freeHTask = q;
+<a name="l00089"></a>00089 }
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091 <span class="keywordtype">void</span>
+<a name="l00092"></a>00092 HTaskInfo::destroy(<span class="keywordtype">void</span>)
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094     HTaskPtr q, tmp; 
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096 <span class="preprocessor">#if 1</span>
+<a name="l00097"></a>00097 <span class="preprocessor"></span>    q = htaskPool;
+<a name="l00098"></a>00098     <span class="keywordflow">while</span> (q) {
+<a name="l00099"></a>00099         tmp = q-&gt;next;
+<a name="l00100"></a>00100         free(q);
+<a name="l00101"></a>00101         q = tmp;
+<a name="l00102"></a>00102     }
+<a name="l00103"></a>00103 <span class="preprocessor">#else</span>
+<a name="l00104"></a>00104 <span class="preprocessor"></span>    <span class="keywordflow">for</span> (q = htaskPool; q; q = q-&gt;next) {
+<a name="l00105"></a>00105         free(q);
+<a name="l00106"></a>00106     }
+<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
+<a name="l00108"></a>00108 <span class="preprocessor"></span>
+<a name="l00109"></a>00109     freeHTask = htaskPool = NULL;
+<a name="l00110"></a>00110 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/HTaskInfo_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/HTaskInfo_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -50,7 +50,7 @@
 <a name="l00030"></a>00030 
 <a name="l00031"></a>00031 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/HTask_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -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>Cerium: HTask.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>HTask.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "HTask.h"</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "ListData.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "TaskManagerImpl.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 
+<a name="l00016"></a>00016 <span class="keywordtype">void</span>
+<a name="l00017"></a>00017 HTask::spawn(<span class="keywordtype">void</span>)
+<a name="l00018"></a>00018 {
+<a name="l00019"></a>00019     mimpl-&gt;spawn_task(<span class="keyword">this</span>);
+<a name="l00020"></a>00020 }
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 <span class="keywordtype">void</span>
+<a name="l00023"></a>00023 HTask::set_depend(HTaskPtr master)
+<a name="l00024"></a>00024 {
+<a name="l00025"></a>00025     mimpl-&gt;set_task_depend(master, <span class="keyword">this</span>);
+<a name="l00026"></a>00026 }
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 <span class="keywordtype">void</span>
+<a name="l00029"></a>00029 HTask::set_cpu(CPU_TYPE type)
+<a name="l00030"></a>00030 {
+<a name="l00031"></a>00031     mimpl-&gt;set_task_cpu(<span class="keyword">this</span>, type);
+<a name="l00032"></a>00032 }
+<a name="l00033"></a>00033 
+<a name="l00034"></a>00034 <span class="keywordtype">void</span>
+<a name="l00035"></a>00035 HTask::set_post(<span class="keywordtype">void</span> (*func)(<span class="keywordtype">void</span> *), <span class="keywordtype">void</span> *arg)
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037     this-&gt;post_func = func;
+<a name="l00038"></a>00038     this-&gt;post_arg = arg;
+<a name="l00039"></a>00039 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/HTask_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/HTask_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -63,7 +63,7 @@
 <a name="l00043"></a>00043 
 <a name="l00044"></a>00044 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Joystick_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Joystick_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -40,7 +40,7 @@
 <a name="l00020"></a>00020 
 <a name="l00021"></a>00021 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Keyboard_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Keyboard_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -32,7 +32,7 @@
 <a name="l00012"></a>00012 
 <a name="l00013"></a>00013 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/ListData_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/ListData_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -57,7 +57,7 @@
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/LongCube_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/LongCube_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>LongCube.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define LongCube scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/MailManager_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: MailManager.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>MailManager.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "MailManager.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 MailManager::MailManager(<span class="keywordtype">void</span>)
+<a name="l00006"></a>00006     :mailQueuePool(NULL), freeMailQueue(NULL) {}
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 MailManager::~MailManager(<span class="keywordtype">void</span>) { destroy(); }
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 <span class="keywordtype">int</span>
+<a name="l00011"></a>00011 MailManager::init(<span class="keywordtype">int</span> num)
+<a name="l00012"></a>00012 {
+<a name="l00013"></a>00013     <span class="keywordflow">if</span> (!mailQueuePool) {
+<a name="l00014"></a>00014         <span class="keywordflow">return</span> extend_pool(num);
+<a name="l00015"></a>00015     }
+<a name="l00016"></a>00016     <span class="keywordflow">return</span> 0;
+<a name="l00017"></a>00017 }
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 <span class="keywordtype">int</span>
+<a name="l00020"></a>00020 MailManager::extend_pool(<span class="keywordtype">int</span> num)
+<a name="l00021"></a>00021 {
+<a name="l00022"></a>00022     MailQueuePtr q;
+<a name="l00023"></a>00023         
+<a name="l00024"></a>00024     q = (MailQueuePtr)malloc(<span class="keyword">sizeof</span>(MailQueue)*(num+1));
+<a name="l00025"></a>00025         
+<a name="l00026"></a>00026     <span class="keywordflow">if</span> (q == NULL) {
+<a name="l00027"></a>00027         <span class="keywordflow">return</span> -1;
+<a name="l00028"></a>00028     }
+<a name="l00029"></a>00029     q-&gt;next = mailQueuePool;
+<a name="l00030"></a>00030     mailQueuePool = q;
+<a name="l00031"></a>00031         
+<a name="l00032"></a>00032     <span class="comment">/* Connect all free queue in the pool */</span>
+<a name="l00033"></a>00033     <span class="keywordflow">for</span> (q = mailQueuePool + 1; --num &gt; 0; q++) {
+<a name="l00034"></a>00034         q-&gt;next = q + 1;
+<a name="l00035"></a>00035     }
+<a name="l00036"></a>00036     q-&gt;next = freeMailQueue;
+<a name="l00037"></a>00037     freeMailQueue = mailQueuePool + 1;
+<a name="l00038"></a>00038         
+<a name="l00039"></a>00039     <span class="keywordflow">return</span> 0;
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041 
+<a name="l00042"></a>00042 MailQueuePtr
+<a name="l00043"></a>00043 MailManager::create(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> data)
+<a name="l00044"></a>00044 {
+<a name="l00045"></a>00045     MailQueuePtr q;
+<a name="l00046"></a>00046         
+<a name="l00047"></a>00047     <span class="keywordflow">if</span> (!freeMailQueue) {
+<a name="l00048"></a>00048         extend_pool(30);
+<a name="l00049"></a>00049     }
+<a name="l00050"></a>00050     q = freeMailQueue;
+<a name="l00051"></a>00051     freeMailQueue = freeMailQueue-&gt;next;
+<a name="l00052"></a>00052         
+<a name="l00053"></a>00053     q-&gt;data = data;
+<a name="l00054"></a>00054     q-&gt;next = NULL;
+<a name="l00055"></a>00055         
+<a name="l00056"></a>00056     <span class="keywordflow">return</span> q;
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059 <span class="keywordtype">void</span>
+<a name="l00060"></a>00060 MailManager::free(MailQueuePtr q)
+<a name="l00061"></a>00061 {
+<a name="l00062"></a>00062     q-&gt;next = freeMailQueue;
+<a name="l00063"></a>00063     freeMailQueue = q;
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067 <span class="keywordtype">void</span>
+<a name="l00068"></a>00068 MailManager::destroy(<span class="keywordtype">void</span>)
+<a name="l00069"></a>00069 {
+<a name="l00070"></a>00070     MailQueuePtr q;
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="preprocessor">#if 0</span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span>    <span class="keywordflow">for</span> (q = mailQueuePool; q; q = q-&gt;next) {
+<a name="l00074"></a>00074         free(q);
+<a name="l00075"></a>00075     }
+<a name="l00076"></a>00076 <span class="preprocessor">#else</span>
+<a name="l00077"></a>00077 <span class="preprocessor"></span>    q = mailQueuePool;
+<a name="l00078"></a>00078     <span class="keywordflow">while</span> (q) {
+<a name="l00079"></a>00079         MailQueuePtr tmp = q-&gt;next;
+<a name="l00080"></a>00080         free(q);
+<a name="l00081"></a>00081         q = tmp;
+<a name="l00082"></a>00082     }
+<a name="l00083"></a>00083 <span class="preprocessor">#endif</span>
+<a name="l00084"></a>00084 <span class="preprocessor"></span>    freeMailQueue = mailQueuePool = NULL;
+<a name="l00085"></a>00085 }
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088 MailQueuePtr
+<a name="l00089"></a>00089 MailManager::append_mailQueue(MailQueuePtr list, MailQueuePtr q)
+<a name="l00090"></a>00090 {
+<a name="l00091"></a>00091     MailQueuePtr p = list;
+<a name="l00092"></a>00092         
+<a name="l00093"></a>00093     <span class="keywordflow">if</span> (p == NULL) {
+<a name="l00094"></a>00094         <span class="keywordflow">return</span> q;
+<a name="l00095"></a>00095     } <span class="keywordflow">else</span> {
+<a name="l00096"></a>00096         <span class="keywordflow">while</span>(p-&gt;next) p = p-&gt;next;
+<a name="l00097"></a>00097         p-&gt;next = q;
+<a name="l00098"></a>00098         <span class="keywordflow">return</span> list;
+<a name="l00099"></a>00099     }
+<a name="l00100"></a>00100 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/MailManager_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/MailManager_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -50,7 +50,7 @@
 <a name="l00030"></a>00030 
 <a name="l00031"></a>00031 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/MainScheduler_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,82 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: MainScheduler.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>MainScheduler.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "MainScheduler.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "FifoDmaManager.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "error.h"</span>
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 <span class="keywordtype">void</span>
+<a name="l00008"></a>00008 MainScheduler::init_impl(<span class="keywordtype">void</span>)
+<a name="l00009"></a>00009 {
+<a name="l00010"></a>00010     connector = <span class="keyword">new</span> FifoDmaManager();
+<a name="l00011"></a>00011 }
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 <span class="keywordtype">void</span>
+<a name="l00014"></a>00014 MainScheduler::set_mailManager(MailManager *m)
+<a name="l00015"></a>00015 {
+<a name="l00016"></a>00016     ((FifoDmaManager*)connector)-&gt;mailManager = m;
+<a name="l00017"></a>00017 }
+<a name="l00018"></a>00018 
+<a name="l00023"></a>00023 <span class="keywordtype">void</span>
+<a name="l00024"></a>00024 MainScheduler::send_mailList(MailQueuePtr mail_list)
+<a name="l00025"></a>00025 {
+<a name="l00026"></a>00026     ((FifoDmaManager*)connector)-&gt;mail_recvQueue = mail_list;
+<a name="l00027"></a>00027     ((FifoDmaManager*)connector)-&gt;mail_sendQueue = NULL;
+<a name="l00028"></a>00028 }
+<a name="l00029"></a>00029 
+<a name="l00034"></a>00034 MailQueuePtr
+<a name="l00035"></a>00035 MainScheduler::recv_mailList(<span class="keywordtype">void</span>)
+<a name="l00036"></a>00036 {
+<a name="l00037"></a>00037     <span class="keywordflow">return</span> ((FifoDmaManager*)connector)-&gt;mail_sendQueue;
+<a name="l00038"></a>00038 }
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 <span class="keywordtype">void</span>*
+<a name="l00042"></a>00042 MainScheduler::allocate(<span class="keywordtype">int</span> size)
+<a name="l00043"></a>00043 {
+<a name="l00044"></a>00044     <span class="keywordtype">void</span> *ptr = malloc(size);
+<a name="l00045"></a>00045     bzero(ptr, size);
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047     <span class="keywordflow">return</span> ptr;
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 
+<a name="l00055"></a>00055 <span class="keywordtype">void</span>
+<a name="l00056"></a>00056 MainScheduler::mainMem_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size)
+<a name="l00057"></a>00057 {
+<a name="l00058"></a>00058     mainMemList[id] = allocate(size);
+<a name="l00059"></a>00059 }
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061 <span class="preprocessor">#if 0</span>
+<a name="l00062"></a>00062 <span class="preprocessor"></span>
+<a name="l00065"></a>00065 <span class="keywordtype">void</span>
+<a name="l00066"></a>00066 MainScheduler::mainMem_wait(<span class="keywordtype">void</span>)
+<a name="l00067"></a>00067 {
+<a name="l00068"></a>00068     <span class="comment">// ⤷ͤ</span>
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070 <span class="preprocessor">#endif</span>
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/MainScheduler_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/MainScheduler_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -44,7 +44,7 @@
 <a name="l00024"></a>00024 
 <a name="l00025"></a>00025 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Pad_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Pad_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -55,7 +55,7 @@
 <a name="l00035"></a>00035 <span class="preprocessor"></span>
 <a name="l00036"></a>00036 <span class="keyword">extern</span> Pad *create_controller(<span class="keywordtype">void</span>);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/PpeScheduler_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: PpeScheduler.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>PpeScheduler.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "PpeScheduler.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 <span class="keywordtype">void</span>*
+<a name="l00006"></a>00006 PpeScheduler::allocate(<span class="keywordtype">int</span> size)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008     <span class="keywordtype">void</span> *buff;
+<a name="l00009"></a>00009     
+<a name="l00010"></a>00010     posix_memalign(&amp;buff, DEFAULT_ALIGNMENT, size);
+<a name="l00011"></a>00011     bzero(buff, size);
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013     <span class="keywordflow">return</span> buff;
+<a name="l00014"></a>00014 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/PpeScheduler_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/PpeScheduler_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -32,7 +32,7 @@
 <a name="l00012"></a>00012 
 <a name="l00013"></a>00013 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Random_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -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>Cerium: Random.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>Random.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;sys/time.h&gt;</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "Random.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00009"></a>00009 Random::Random(<span class="keywordtype">void</span>)
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011     reset();
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013 
+<a name="l00017"></a>00017 Random::Random(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seed)
+<a name="l00018"></a>00018 {
+<a name="l00019"></a>00019     srandom(seed);
+<a name="l00020"></a>00020 }
+<a name="l00021"></a>00021 
+<a name="l00022"></a>00022 <span class="keywordtype">void</span>
+<a name="l00023"></a>00023 Random::reset(<span class="keywordtype">void</span>)
+<a name="l00024"></a>00024 {
+<a name="l00025"></a>00025     FILE *fp;
+<a name="l00026"></a>00026     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> seed;
+<a name="l00027"></a>00027     <span class="keyword">struct </span>timeval tv;
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029     fp = fopen(<span class="stringliteral">"/dev/urandom"</span>, <span class="stringliteral">"r"</span>);
+<a name="l00030"></a>00030     <span class="keywordflow">if</span> (!fp) fp = fopen(<span class="stringliteral">"/dev/random"</span>, <span class="stringliteral">"r"</span>);
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032     <span class="keywordflow">if</span> (fp) {
+<a name="l00033"></a>00033         <span class="keywordtype">int</span> res = fread(&amp;seed, <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>), 1, fp);
+<a name="l00034"></a>00034         <span class="keywordflow">if</span> (res != <span class="keyword">sizeof</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)) {
+<a name="l00035"></a>00035             fclose(fp);
+<a name="l00036"></a>00036             fp = NULL;
+<a name="l00037"></a>00037         }
+<a name="l00038"></a>00038     }
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     <span class="keywordflow">if</span> (!fp) {
+<a name="l00041"></a>00041         gettimeofday(&amp;tv, NULL);
+<a name="l00042"></a>00042         seed = (tv.tv_sec ^ tv.tv_usec);
+<a name="l00043"></a>00043     } <span class="keywordflow">else</span> {
+<a name="l00044"></a>00044         fclose(fp);
+<a name="l00045"></a>00045     }
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047     srandom(seed);
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 <span class="keywordtype">int</span>
+<a name="l00051"></a>00051 Random::getData(<span class="keywordtype">void</span>)
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053     <span class="keywordflow">return</span> random();
+<a name="l00054"></a>00054 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/Random_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Random_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -34,7 +34,7 @@
 <a name="l00014"></a>00014 
 <a name="l00015"></a>00015 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SGList_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SGList_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,94 +39,174 @@
 <a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define Venus005         10</span>
 <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define Venus009         11</span>
 <a name="l00021"></a>00021 <span class="preprocessor"></span>
-<a name="l00022"></a>00022 <span class="comment">/* xml_file/blast.xml */</span>
-<a name="l00023"></a>00023 <span class="preprocessor">#define BLAST8   12</span>
-<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define BLAST7   13</span>
-<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define BLAST6   14</span>
-<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define BLAST5   15</span>
-<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define BLAST4   16</span>
-<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define BLAST3   17</span>
-<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define BLAST2   18</span>
-<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define BLAST1   19</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span>
-<a name="l00032"></a>00032 <span class="comment">/* xml_file/boss1.xml */</span>
-<a name="l00033"></a>00033 <span class="preprocessor">#define BOSS1    20</span>
-<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define BOSS1_L  21</span>
-<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define BOSS1_R  22</span>
-<a name="l00036"></a>00036 <span class="preprocessor"></span>
-<a name="l00037"></a>00037 <span class="comment">/* xml_file/cube.xml */</span>
-<a name="l00038"></a>00038 <span class="preprocessor">#define Cube     23</span>
-<a name="l00039"></a>00039 <span class="preprocessor"></span>
-<a name="l00040"></a>00040 <span class="comment">/* xml_file/cube_big.xml */</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#define BigCube  24</span>
-<a name="l00042"></a>00042 <span class="preprocessor"></span>
-<a name="l00043"></a>00043 <span class="comment">/* xml_file/cube_split.xml */</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#define Plane    25</span>
-<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#define SmallCube        26</span>
-<a name="l00046"></a>00046 <span class="preprocessor"></span>
-<a name="l00047"></a>00047 <span class="comment">/* xml_file/direction.xml */</span>
-<a name="l00048"></a>00048 <span class="preprocessor">#define Diry     27</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#define Dirz     28</span>
-<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#define Dirx     29</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span>
-<a name="l00052"></a>00052 <span class="comment">/* xml_file/ieboss.xml */</span>
-<a name="l00053"></a>00053 <span class="preprocessor">#define IEBOSS   30</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span>
-<a name="l00055"></a>00055 <span class="comment">/* xml_file/iejiki.xml */</span>
-<a name="l00056"></a>00056 <span class="preprocessor">#define IEJIKI   31</span>
-<a name="l00057"></a>00057 <span class="preprocessor"></span>
-<a name="l00058"></a>00058 <span class="comment">/* xml_file/ietama.xml */</span>
-<a name="l00059"></a>00059 <span class="preprocessor">#define IETAMA   32</span>
-<a name="l00060"></a>00060 <span class="preprocessor"></span>
-<a name="l00061"></a>00061 <span class="comment">/* xml_file/mcube.xml */</span>
-<a name="l00062"></a>00062 <span class="preprocessor">#define MCUBE_BACK       33</span>
-<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#define MCUBE    34</span>
-<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#define BIGMCUBE         35</span>
-<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#define CUBE     36</span>
-<a name="l00066"></a>00066 <span class="preprocessor"></span>
-<a name="l00067"></a>00067 <span class="comment">/* xml_file/p_shot.xml */</span>
-<a name="l00068"></a>00068 <span class="preprocessor">#define P_SHOT1  37</span>
-<a name="l00069"></a>00069 <span class="preprocessor"></span>
-<a name="l00070"></a>00070 <span class="comment">/* xml_file/panel_1024.xml */</span>
-<a name="l00071"></a>00071 <span class="preprocessor">#define PANEL_1024       38</span>
-<a name="l00072"></a>00072 <span class="preprocessor"></span>
-<a name="l00073"></a>00073 <span class="comment">/* xml_file/panel_2048.xml */</span>
-<a name="l00074"></a>00074 <span class="preprocessor">#define PANEL_2048       39</span>
-<a name="l00075"></a>00075 <span class="preprocessor"></span>
-<a name="l00076"></a>00076 <span class="comment">/* xml_file/panel_512.xml */</span>
-<a name="l00077"></a>00077 <span class="preprocessor">#define PANEL_512        40</span>
-<a name="l00078"></a>00078 <span class="preprocessor"></span>
-<a name="l00079"></a>00079 <span class="comment">/* xml_file/player.xml */</span>
-<a name="l00080"></a>00080 <span class="preprocessor">#define PLAYER   41</span>
-<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_L         42</span>
-<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_LL        43</span>
-<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_R         44</span>
-<a name="l00084"></a>00084 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_RR        45</span>
-<a name="l00085"></a>00085 <span class="preprocessor"></span>
-<a name="l00086"></a>00086 <span class="comment">/* xml_file/sphere.xml */</span>
-<a name="l00087"></a>00087 <span class="preprocessor">#define Sphere   46</span>
-<a name="l00088"></a>00088 <span class="preprocessor"></span>
-<a name="l00089"></a>00089 <span class="comment">/* xml_file/sphere_big.xml */</span>
-<a name="l00090"></a>00090 <span class="preprocessor">#define BigSphere        47</span>
-<a name="l00091"></a>00091 <span class="preprocessor"></span>
-<a name="l00092"></a>00092 <span class="comment">/* xml_file/universe.xml */</span>
-<a name="l00093"></a>00093 <span class="preprocessor">#define Earth    48</span>
-<a name="l00094"></a>00094 <span class="preprocessor"></span><span class="preprocessor">#define Moon     49</span>
-<a name="l00095"></a>00095 <span class="preprocessor"></span>
-<a name="l00096"></a>00096 <span class="preprocessor">#define BACK 50</span>
-<a name="l00097"></a>00097 <span class="preprocessor"></span><span class="preprocessor">#define BULEBULLET 51</span>
-<a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor">#define E_PLANE 52</span>
-<a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor">#define IDLE 53</span>
-<a name="l00100"></a>00100 <span class="preprocessor"></span>
-<a name="l00101"></a>00101 <span class="comment">/* Number of Scene */</span>
-<a name="l00102"></a>00102 <span class="preprocessor">#define SGLIST_LENGTH 54</span>
-<a name="l00103"></a>00103 <span class="preprocessor"></span>
-<a name="l00104"></a>00104 <span class="comment">/* Scene Table */</span>
-<a name="l00105"></a>00105 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *sglist_table[SGLIST_LENGTH];
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
+<a name="l00022"></a>00022 &lt;&lt;&lt;&lt;&lt;&lt;&lt; /home/teacher/kono/src/Cerium/TaskManager/Test/test_render/SGList.h
+<a name="l00023"></a>00023 <span class="comment">/* ../xml_file/blast.xml */</span>
+<a name="l00024"></a>00024 <span class="preprocessor">#define BLAST8   12</span>
+<a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor">#define BLAST7   13</span>
+<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#define BLAST6   14</span>
+<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#define BLAST5   15</span>
+<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define BLAST4   16</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define BLAST3   17</span>
+<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define BLAST2   18</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#define BLAST1   19</span>
+<a name="l00032"></a>00032 <span class="preprocessor"></span>
+<a name="l00033"></a>00033 <span class="comment">/* ../xml_file/boss1.xml */</span>
+<a name="l00034"></a>00034 <span class="preprocessor">#define BOSS1    20</span>
+<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define BOSS1_L  21</span>
+<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define BOSS1_R  22</span>
+<a name="l00037"></a>00037 <span class="preprocessor"></span>
+<a name="l00038"></a>00038 <span class="comment">/* ../xml_file/cube.xml */</span>
+<a name="l00039"></a>00039 <span class="preprocessor">#define Cube     23</span>
+<a name="l00040"></a>00040 <span class="preprocessor"></span>
+<a name="l00041"></a>00041 <span class="comment">/* ../xml_file/cube_big.xml */</span>
+<a name="l00042"></a>00042 <span class="preprocessor">#define BigCube  24</span>
+<a name="l00043"></a>00043 <span class="preprocessor"></span>
+<a name="l00044"></a>00044 <span class="comment">/* ../xml_file/cube_split.xml */</span>
+<a name="l00045"></a>00045 <span class="preprocessor">#define Plane    25</span>
+<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">#define SmallCube        26</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>
+<a name="l00048"></a>00048 <span class="comment">/* ../xml_file/direction.xml */</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#define Diry     27</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#define Dirz     28</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#define Dirx     29</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span>
+<a name="l00053"></a>00053 <span class="comment">/* ../xml_file/ieboss.xml */</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#define IEBOSS   30</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span>
+<a name="l00056"></a>00056 <span class="comment">/* ../xml_file/iejiki.xml */</span>
+<a name="l00057"></a>00057 <span class="preprocessor">#define IEJIKI   31</span>
+<a name="l00058"></a>00058 <span class="preprocessor"></span>
+<a name="l00059"></a>00059 <span class="comment">/* ../xml_file/ietama.xml */</span>
+<a name="l00060"></a>00060 <span class="preprocessor">#define IETAMA   32</span>
+<a name="l00061"></a>00061 <span class="preprocessor"></span>
+<a name="l00062"></a>00062 <span class="comment">/* ../xml_file/mcube.xml */</span>
+<a name="l00063"></a>00063 <span class="preprocessor">#define MCUBE_BACK       33</span>
+<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#define MCUBE    34</span>
+<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#define BIGMCUBE         35</span>
+<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#define CUBE     36</span>
+<a name="l00067"></a>00067 <span class="preprocessor"></span>
+<a name="l00068"></a>00068 <span class="comment">/* ../xml_file/p_shot.xml */</span>
+<a name="l00069"></a>00069 <span class="preprocessor">#define P_SHOT1  37</span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span>
+<a name="l00071"></a>00071 <span class="comment">/* ../xml_file/panel_1024.xml */</span>
+<a name="l00072"></a>00072 <span class="preprocessor">#define PANEL_1024       38</span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span>
+<a name="l00074"></a>00074 <span class="comment">/* ../xml_file/panel_2048.xml */</span>
+<a name="l00075"></a>00075 <span class="preprocessor">#define PANEL_2048       39</span>
+<a name="l00076"></a>00076 <span class="preprocessor"></span>
+<a name="l00077"></a>00077 <span class="comment">/* ../xml_file/panel_512.xml */</span>
+<a name="l00078"></a>00078 <span class="preprocessor">#define PANEL_512        40</span>
+<a name="l00079"></a>00079 <span class="preprocessor"></span>
+<a name="l00080"></a>00080 <span class="comment">/* ../xml_file/player.xml */</span>
+<a name="l00081"></a>00081 <span class="preprocessor">#define PLAYER   41</span>
+<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_L         42</span>
+<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_LL        43</span>
+<a name="l00084"></a>00084 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_R         44</span>
+<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_RR        45</span>
+<a name="l00086"></a>00086 <span class="preprocessor"></span>
+<a name="l00087"></a>00087 <span class="comment">/* ../xml_file/sphere.xml */</span>
+<a name="l00088"></a>00088 <span class="preprocessor">#define Sphere   46</span>
+<a name="l00089"></a>00089 <span class="preprocessor"></span>
+<a name="l00090"></a>00090 <span class="comment">/* ../xml_file/sphere_big.xml */</span>
+<a name="l00091"></a>00091 <span class="preprocessor">#define BigSphere        47</span>
+<a name="l00092"></a>00092 <span class="preprocessor"></span>
+<a name="l00093"></a>00093 <span class="comment">/* ../xml_file/universe.xml */</span>
+<a name="l00094"></a>00094 <span class="preprocessor">#define Earth    48</span>
+<a name="l00095"></a>00095 <span class="preprocessor"></span><span class="preprocessor">#define Moon     49</span>
+<a name="l00096"></a>00096 <span class="preprocessor"></span>=======
+<a name="l00097"></a>00097 <span class="comment">/* xml_file/blast.xml */</span>
+<a name="l00098"></a>00098 <span class="preprocessor">#define BLAST8   12</span>
+<a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor">#define BLAST7   13</span>
+<a name="l00100"></a>00100 <span class="preprocessor"></span><span class="preprocessor">#define BLAST6   14</span>
+<a name="l00101"></a>00101 <span class="preprocessor"></span><span class="preprocessor">#define BLAST5   15</span>
+<a name="l00102"></a>00102 <span class="preprocessor"></span><span class="preprocessor">#define BLAST4   16</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span><span class="preprocessor">#define BLAST3   17</span>
+<a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor">#define BLAST2   18</span>
+<a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor">#define BLAST1   19</span>
+<a name="l00106"></a>00106 <span class="preprocessor"></span>
+<a name="l00107"></a>00107 <span class="comment">/* xml_file/boss1.xml */</span>
+<a name="l00108"></a>00108 <span class="preprocessor">#define BOSS1    20</span>
+<a name="l00109"></a>00109 <span class="preprocessor"></span><span class="preprocessor">#define BOSS1_L  21</span>
+<a name="l00110"></a>00110 <span class="preprocessor"></span><span class="preprocessor">#define BOSS1_R  22</span>
+<a name="l00111"></a>00111 <span class="preprocessor"></span>
+<a name="l00112"></a>00112 <span class="comment">/* xml_file/cube.xml */</span>
+<a name="l00113"></a>00113 <span class="preprocessor">#define Cube     23</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>
+<a name="l00115"></a>00115 <span class="comment">/* xml_file/cube_big.xml */</span>
+<a name="l00116"></a>00116 <span class="preprocessor">#define BigCube  24</span>
+<a name="l00117"></a>00117 <span class="preprocessor"></span>
+<a name="l00118"></a>00118 <span class="comment">/* xml_file/cube_split.xml */</span>
+<a name="l00119"></a>00119 <span class="preprocessor">#define Plane    25</span>
+<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#define SmallCube        26</span>
+<a name="l00121"></a>00121 <span class="preprocessor"></span>
+<a name="l00122"></a>00122 <span class="comment">/* xml_file/direction.xml */</span>
+<a name="l00123"></a>00123 <span class="preprocessor">#define Diry     27</span>
+<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor">#define Dirz     28</span>
+<a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor">#define Dirx     29</span>
+<a name="l00126"></a>00126 <span class="preprocessor"></span>
+<a name="l00127"></a>00127 <span class="comment">/* xml_file/ieboss.xml */</span>
+<a name="l00128"></a>00128 <span class="preprocessor">#define IEBOSS   30</span>
+<a name="l00129"></a>00129 <span class="preprocessor"></span>
+<a name="l00130"></a>00130 <span class="comment">/* xml_file/iejiki.xml */</span>
+<a name="l00131"></a>00131 <span class="preprocessor">#define IEJIKI   31</span>
+<a name="l00132"></a>00132 <span class="preprocessor"></span>
+<a name="l00133"></a>00133 <span class="comment">/* xml_file/ietama.xml */</span>
+<a name="l00134"></a>00134 <span class="preprocessor">#define IETAMA   32</span>
+<a name="l00135"></a>00135 <span class="preprocessor"></span>
+<a name="l00136"></a>00136 <span class="comment">/* xml_file/mcube.xml */</span>
+<a name="l00137"></a>00137 <span class="preprocessor">#define MCUBE_BACK       33</span>
+<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor">#define MCUBE    34</span>
+<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">#define BIGMCUBE         35</span>
+<a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor">#define CUBE     36</span>
+<a name="l00141"></a>00141 <span class="preprocessor"></span>
+<a name="l00142"></a>00142 <span class="comment">/* xml_file/p_shot.xml */</span>
+<a name="l00143"></a>00143 <span class="preprocessor">#define P_SHOT1  37</span>
+<a name="l00144"></a>00144 <span class="preprocessor"></span>
+<a name="l00145"></a>00145 <span class="comment">/* xml_file/panel_1024.xml */</span>
+<a name="l00146"></a>00146 <span class="preprocessor">#define PANEL_1024       38</span>
+<a name="l00147"></a>00147 <span class="preprocessor"></span>
+<a name="l00148"></a>00148 <span class="comment">/* xml_file/panel_2048.xml */</span>
+<a name="l00149"></a>00149 <span class="preprocessor">#define PANEL_2048       39</span>
+<a name="l00150"></a>00150 <span class="preprocessor"></span>
+<a name="l00151"></a>00151 <span class="comment">/* xml_file/panel_512.xml */</span>
+<a name="l00152"></a>00152 <span class="preprocessor">#define PANEL_512        40</span>
+<a name="l00153"></a>00153 <span class="preprocessor"></span>
+<a name="l00154"></a>00154 <span class="comment">/* xml_file/player.xml */</span>
+<a name="l00155"></a>00155 <span class="preprocessor">#define PLAYER   41</span>
+<a name="l00156"></a>00156 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_L         42</span>
+<a name="l00157"></a>00157 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_LL        43</span>
+<a name="l00158"></a>00158 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_R         44</span>
+<a name="l00159"></a>00159 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_RR        45</span>
+<a name="l00160"></a>00160 <span class="preprocessor"></span>
+<a name="l00161"></a>00161 <span class="comment">/* xml_file/sphere.xml */</span>
+<a name="l00162"></a>00162 <span class="preprocessor">#define Sphere   46</span>
+<a name="l00163"></a>00163 <span class="preprocessor"></span>
+<a name="l00164"></a>00164 <span class="comment">/* xml_file/sphere_big.xml */</span>
+<a name="l00165"></a>00165 <span class="preprocessor">#define BigSphere        47</span>
+<a name="l00166"></a>00166 <span class="preprocessor"></span>
+<a name="l00167"></a>00167 <span class="comment">/* xml_file/universe.xml */</span>
+<a name="l00168"></a>00168 <span class="preprocessor">#define Earth    48</span>
+<a name="l00169"></a>00169 <span class="preprocessor"></span><span class="preprocessor">#define Moon     49</span>
+<a name="l00170"></a>00170 <span class="preprocessor"></span>
+<a name="l00171"></a>00171 <span class="preprocessor">#define BACK 50</span>
+<a name="l00172"></a>00172 <span class="preprocessor"></span><span class="preprocessor">#define BULEBULLET 51</span>
+<a name="l00173"></a>00173 <span class="preprocessor"></span><span class="preprocessor">#define E_PLANE 52</span>
+<a name="l00174"></a>00174 <span class="preprocessor"></span><span class="preprocessor">#define IDLE 53</span>
+<a name="l00175"></a>00175 <span class="preprocessor"></span>&gt;&gt;&gt;&gt;&gt;&gt;&gt; /tmp/SGList.h~other.pqznY4
+<a name="l00176"></a>00176 
+<a name="l00177"></a>00177 <span class="comment">/* Number of Scene */</span>
+<a name="l00178"></a>00178 &lt;&lt;&lt;&lt;&lt;&lt;&lt; /home/teacher/kono/src/Cerium/TaskManager/Test/test_render/SGList.h
+<a name="l00179"></a>00179 <span class="preprocessor">#define SGLIST_LENGTH 50</span>
+<a name="l00180"></a>00180 <span class="preprocessor"></span>=======
+<a name="l00181"></a>00181 <span class="preprocessor">#define SGLIST_LENGTH 54</span>
+<a name="l00182"></a>00182 <span class="preprocessor"></span>&gt;&gt;&gt;&gt;&gt;&gt;&gt; /tmp/SGList.h~other.pqznY4
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184 <span class="comment">/* Scene Table */</span>
+<a name="l00185"></a>00185 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *sglist_table[SGLIST_LENGTH];
+<a name="l00186"></a>00186 
+<a name="l00187"></a>00187 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SceneGraphArray_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SceneGraphArray_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -55,7 +55,7 @@
 <a name="l00044"></a>00044 <span class="preprocessor"></span>
 <a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SceneGraphIterator_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SceneGraphIterator_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -46,7 +46,7 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SceneGraphRoot_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SceneGraphRoot_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -102,7 +102,7 @@
 <a name="l00085"></a>00085 <span class="preprocessor"></span>
 <a name="l00086"></a>00086 <span class="keyword">extern</span> SceneGraphRootPtr sgroot;
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SceneGraph_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SceneGraph_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -122,7 +122,7 @@
 <a name="l00102"></a>00102 <span class="comment">// 描画用 (同じオブジェクトが複数ある) Tree</span>
 <a name="l00103"></a>00103 <span class="keyword">extern</span> SceneGraphPtr scene_graph_view;
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SchedExit_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SchedExit_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -42,7 +42,7 @@
 <a name="l00022"></a>00022 
 <a name="l00023"></a>00023 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SchedMail_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SchedMail_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -58,7 +58,7 @@
 <a name="l00038"></a>00038 
 <a name="l00039"></a>00039 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SchedNop2Ready_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SchedNop2Ready_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -61,7 +61,7 @@
 <a name="l00041"></a>00041 
 <a name="l00042"></a>00042 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SchedNop_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SchedNop_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -45,7 +45,7 @@
 <a name="l00025"></a>00025 
 <a name="l00026"></a>00026 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SchedTaskBase_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SchedTaskBase_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -51,7 +51,7 @@
 <a name="l00031"></a>00031 
 <a name="l00032"></a>00032 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SchedTaskList_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SchedTaskList_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -69,7 +69,7 @@
 <a name="l00049"></a>00049 <span class="preprocessor"></span>
 <a name="l00050"></a>00050 <span class="keyword">extern</span> SchedTaskList* createSchedTaskList(uint32, Scheduler*, <span class="keywordtype">int</span>);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SchedTask_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SchedTask_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -250,7 +250,7 @@
 <a name="l00244"></a>00244 <span class="preprocessor"></span>
 <a name="l00245"></a>00245 <span class="keyword">extern</span> SchedTask* createSchedTask(TaskPtr);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Scheduler_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Scheduler_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -101,84 +101,86 @@
 <a name="l00110"></a>00110     <span class="keywordtype">void</span>* mainMemList[MAX_MAINMEM_AREA];
 <a name="l00111"></a>00111 
 <a name="l00112"></a>00112     <span class="comment">// Task Object Table</span>
-<a name="l00113"></a>00113     <span class="keyword">typedef</span> SchedTask* (*TaskObject)(void);
-<a name="l00114"></a>00114 
-<a name="l00115"></a>00115     DmaManager* connector;
+<a name="l00113"></a>00113     <span class="comment">//  this is named TaskObject but it is not an object.</span>
+<a name="l00114"></a>00114     <span class="comment">//  It is a pointer to an object creation function</span>
+<a name="l00115"></a>00115     <span class="keyword">typedef</span> SchedTask* (*TaskObject)(void);
 <a name="l00116"></a>00116 
-<a name="l00117"></a>00117     <span class="comment">// Pipeline Stage</span>
-<a name="l00118"></a>00118     SchedTaskBase* task1;
-<a name="l00119"></a>00119     SchedTaskBase* task2;
-<a name="l00120"></a>00120     SchedTaskBase* task3;
-<a name="l00121"></a>00121 
-<a name="l00122"></a>00122     <span class="comment">/* functions */</span>
-<a name="l00123"></a>00123     <span class="keywordtype">void</span> init(<span class="keywordtype">void</span>);
-<a name="l00124"></a>00124     <span class="keywordtype">void</span> run(<span class="keywordtype">void</span>);
-<a name="l00125"></a>00125     <span class="keyword">virtual</span> <span class="keywordtype">void</span> init_impl(<span class="keywordtype">void</span>) {};
-<a name="l00126"></a>00126     <span class="keywordtype">void</span> finish(<span class="keywordtype">void</span>);
-<a name="l00127"></a>00127 
-<a name="l00128"></a>00128     TaskListPtr get_curListBuf(<span class="keywordtype">void</span>);
-<a name="l00129"></a>00129     ListDataPtr get_curReadBuf(<span class="keywordtype">void</span>);
-<a name="l00130"></a>00130     ListDataPtr get_curWriteBuf(<span class="keywordtype">void</span>);
-<a name="l00131"></a>00131     TaskListPtr get_renewListBuf(<span class="keywordtype">void</span>);
-<a name="l00132"></a>00132 
-<a name="l00133"></a>00133     <span class="keywordtype">void</span> set_backupTaskList(TaskListPtr cur_taskList);
-<a name="l00134"></a>00134     <span class="keywordtype">void</span> set_backupTaskListIndex(<span class="keywordtype">int</span> cur_index);
-<a name="l00135"></a>00135     SchedTaskList* get_nextRenewTaskList(<span class="keywordtype">void</span>);
-<a name="l00136"></a>00136     TaskListPtr get_backupTaskList(<span class="keywordtype">void</span>);
-<a name="l00137"></a>00137     <span class="keywordtype">int</span> get_backupTaskListIndex(<span class="keywordtype">void</span>);
-<a name="l00138"></a>00138 
-<a name="l00139"></a>00139     <span class="comment">// ʤ̾Ѥ</span>
-<a name="l00140"></a>00140     <span class="comment">/* TaskGroup */</span>
-<a name="l00141"></a>00141     TaskGroupPtr set_groupTask(uint32 command);
-<a name="l00142"></a>00142     <span class="keywordtype">void</span> add_groupTask(TaskGroupPtr group, TaskPtr task);
-<a name="l00143"></a>00143     <span class="keywordtype">void</span> remove_groupTask(TaskGroupPtr group, TaskPtr task);
-<a name="l00144"></a>00144     <span class="keywordtype">void</span> reload_groupTask(<span class="keywordtype">void</span>);
-<a name="l00145"></a>00145     uint32 status_groupTask(TaskGroupPtr group);
-<a name="l00146"></a>00146 
-<a name="l00147"></a>00147     <span class="comment">/* GlobalMemory */</span>
-<a name="l00148"></a>00148     <span class="keywordtype">void</span>* global_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size);
-<a name="l00149"></a>00149     <span class="keywordtype">void</span>* global_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);
-<a name="l00150"></a>00150     <span class="keywordtype">void</span> global_free(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);
-<a name="l00151"></a>00151     
-<a name="l00152"></a>00152     <span class="keyword">virtual</span> <span class="keywordtype">void</span> *allocate(<span class="keywordtype">int</span> size) { <span class="keywordflow">return</span> NULL; };
-<a name="l00153"></a>00153 
-<a name="l00154"></a>00154     <span class="keyword">virtual</span> <span class="keywordtype">void</span> mainMem_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size) {};
-<a name="l00155"></a>00155     <span class="keyword">virtual</span> <span class="keywordtype">void</span> mainMem_wait(<span class="keywordtype">void</span>) {};
-<a name="l00156"></a>00156     <span class="keywordtype">void</span> *mainMem_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);
-<a name="l00157"></a>00157 
-<a name="l00158"></a>00158     <span class="comment">/* DMA Transfer */</span>
-<a name="l00159"></a>00159     <span class="keywordtype">void</span> dma_load(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask);
-<a name="l00160"></a>00160     <span class="keywordtype">void</span> dma_store(<span class="keywordtype">void</span> *buf,uint32 addr, uint32 size, uint32 mask);
-<a name="l00161"></a>00161     <span class="keywordtype">void</span> dma_wait(uint32 mask);
-<a name="l00162"></a>00162     <span class="keywordtype">void</span> show_dma_wait() { connector-&gt;show_dma_wait(<span class="keywordtype">id</span>); };
-<a name="l00163"></a>00163     <span class="keywordtype">void</span> mail_write(uint32 data);
-<a name="l00164"></a>00164     uint32 mail_read(<span class="keywordtype">void</span>);
-<a name="l00165"></a>00165     <span class="keywordtype">void</span> dma_loadList(ListDataPtr list, <span class="keywordtype">void</span> *, uint32 mask);
-<a name="l00166"></a>00166     <span class="keywordtype">void</span> dma_storeList(ListDataPtr list, <span class="keywordtype">void</span> *, uint32 mask);
-<a name="l00167"></a>00167 };
-<a name="l00168"></a>00168 
-<a name="l00169"></a>00169 <span class="preprocessor">#endif</span>
-<a name="l00170"></a>00170 <span class="preprocessor"></span>
-<a name="l00171"></a>00171 <span class="keyword">extern</span> <span class="keywordtype">void</span> register_task(<span class="keywordtype">int</span> cmd, Scheduler::TaskObject task);
-<a name="l00172"></a>00172 
-<a name="l00173"></a>00173 <span class="preprocessor">#define SchedConstructor(str)                                           \</span>
-<a name="l00174"></a>00174 <span class="preprocessor">    str(void) {}                                                        \</span>
-<a name="l00175"></a>00175 <span class="preprocessor">    BASE_NEW_DELETE(str)                                                \</span>
-<a name="l00176"></a>00176 <span class="preprocessor"></span>
-<a name="l00177"></a>00177 <span class="preprocessor"></span><span class="preprocessor">#define SchedDefineTask(str)                                            \</span>
-<a name="l00178"></a>00178 <span class="preprocessor">    SchedTask* createTask_##str(void)                                   \</span>
-<a name="l00179"></a>00179 <span class="preprocessor">    {                                                                   \</span>
-<a name="l00180"></a>00180 <span class="preprocessor">        return new str();                                               \</span>
-<a name="l00181"></a>00181 <span class="preprocessor">    }</span>
-<a name="l00182"></a>00182 <span class="preprocessor"></span>
-<a name="l00183"></a>00183 <span class="preprocessor">#define SchedExternTask(str)                                            \</span>
-<a name="l00184"></a>00184 <span class="preprocessor">    extern                                                              \</span>
-<a name="l00185"></a>00185 <span class="preprocessor">    SchedTask* createTask_##str(void);</span>
-<a name="l00186"></a>00186 <span class="preprocessor"></span>
-<a name="l00187"></a>00187 <span class="preprocessor">#define SchedRegisterTask(cmd, str)             \</span>
-<a name="l00188"></a>00188 <span class="preprocessor">    register_task(cmd, createTask_##str);</span>
+<a name="l00117"></a>00117     DmaManager* connector;
+<a name="l00118"></a>00118 
+<a name="l00119"></a>00119     <span class="comment">// Pipeline Stage</span>
+<a name="l00120"></a>00120     SchedTaskBase* task1;
+<a name="l00121"></a>00121     SchedTaskBase* task2;
+<a name="l00122"></a>00122     SchedTaskBase* task3;
+<a name="l00123"></a>00123 
+<a name="l00124"></a>00124     <span class="comment">/* functions */</span>
+<a name="l00125"></a>00125     <span class="keywordtype">void</span> init(<span class="keywordtype">void</span>);
+<a name="l00126"></a>00126     <span class="keywordtype">void</span> run(<span class="keywordtype">void</span>);
+<a name="l00127"></a>00127     <span class="keyword">virtual</span> <span class="keywordtype">void</span> init_impl(<span class="keywordtype">void</span>) {};
+<a name="l00128"></a>00128     <span class="keywordtype">void</span> finish(<span class="keywordtype">void</span>);
+<a name="l00129"></a>00129 
+<a name="l00130"></a>00130     TaskListPtr get_curListBuf(<span class="keywordtype">void</span>);
+<a name="l00131"></a>00131     ListDataPtr get_curReadBuf(<span class="keywordtype">void</span>);
+<a name="l00132"></a>00132     ListDataPtr get_curWriteBuf(<span class="keywordtype">void</span>);
+<a name="l00133"></a>00133     TaskListPtr get_renewListBuf(<span class="keywordtype">void</span>);
+<a name="l00134"></a>00134 
+<a name="l00135"></a>00135     <span class="keywordtype">void</span> set_backupTaskList(TaskListPtr cur_taskList);
+<a name="l00136"></a>00136     <span class="keywordtype">void</span> set_backupTaskListIndex(<span class="keywordtype">int</span> cur_index);
+<a name="l00137"></a>00137     SchedTaskList* get_nextRenewTaskList(<span class="keywordtype">void</span>);
+<a name="l00138"></a>00138     TaskListPtr get_backupTaskList(<span class="keywordtype">void</span>);
+<a name="l00139"></a>00139     <span class="keywordtype">int</span> get_backupTaskListIndex(<span class="keywordtype">void</span>);
+<a name="l00140"></a>00140 
+<a name="l00141"></a>00141     <span class="comment">// ʤ̾Ѥ</span>
+<a name="l00142"></a>00142     <span class="comment">/* TaskGroup */</span>
+<a name="l00143"></a>00143     TaskGroupPtr set_groupTask(uint32 command);
+<a name="l00144"></a>00144     <span class="keywordtype">void</span> add_groupTask(TaskGroupPtr group, TaskPtr task);
+<a name="l00145"></a>00145     <span class="keywordtype">void</span> remove_groupTask(TaskGroupPtr group, TaskPtr task);
+<a name="l00146"></a>00146     <span class="keywordtype">void</span> reload_groupTask(<span class="keywordtype">void</span>);
+<a name="l00147"></a>00147     uint32 status_groupTask(TaskGroupPtr group);
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149     <span class="comment">/* GlobalMemory */</span>
+<a name="l00150"></a>00150     <span class="keywordtype">void</span>* global_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size);
+<a name="l00151"></a>00151     <span class="keywordtype">void</span>* global_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);
+<a name="l00152"></a>00152     <span class="keywordtype">void</span> global_free(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);
+<a name="l00153"></a>00153     
+<a name="l00154"></a>00154     <span class="keyword">virtual</span> <span class="keywordtype">void</span> *allocate(<span class="keywordtype">int</span> size) { <span class="keywordflow">return</span> NULL; };
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156     <span class="keyword">virtual</span> <span class="keywordtype">void</span> mainMem_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size) {};
+<a name="l00157"></a>00157     <span class="keyword">virtual</span> <span class="keywordtype">void</span> mainMem_wait(<span class="keywordtype">void</span>) {};
+<a name="l00158"></a>00158     <span class="keywordtype">void</span> *mainMem_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160     <span class="comment">/* DMA Transfer */</span>
+<a name="l00161"></a>00161     <span class="keywordtype">void</span> dma_load(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask);
+<a name="l00162"></a>00162     <span class="keywordtype">void</span> dma_store(<span class="keywordtype">void</span> *buf,uint32 addr, uint32 size, uint32 mask);
+<a name="l00163"></a>00163     <span class="keywordtype">void</span> dma_wait(uint32 mask);
+<a name="l00164"></a>00164     <span class="keywordtype">void</span> show_dma_wait() { connector-&gt;show_dma_wait(<span class="keywordtype">id</span>); };
+<a name="l00165"></a>00165     <span class="keywordtype">void</span> mail_write(uint32 data);
+<a name="l00166"></a>00166     uint32 mail_read(<span class="keywordtype">void</span>);
+<a name="l00167"></a>00167     <span class="keywordtype">void</span> dma_loadList(ListDataPtr list, <span class="keywordtype">void</span> *, uint32 mask);
+<a name="l00168"></a>00168     <span class="keywordtype">void</span> dma_storeList(ListDataPtr list, <span class="keywordtype">void</span> *, uint32 mask);
+<a name="l00169"></a>00169 };
+<a name="l00170"></a>00170 
+<a name="l00171"></a>00171 <span class="preprocessor">#endif</span>
+<a name="l00172"></a>00172 <span class="preprocessor"></span>
+<a name="l00173"></a>00173 <span class="keyword">extern</span> <span class="keywordtype">void</span> register_task(<span class="keywordtype">int</span> cmd, Scheduler::TaskObject task);
+<a name="l00174"></a>00174 
+<a name="l00175"></a>00175 <span class="preprocessor">#define SchedConstructor(str)                                           \</span>
+<a name="l00176"></a>00176 <span class="preprocessor">    str(void) {}                                                        \</span>
+<a name="l00177"></a>00177 <span class="preprocessor">    BASE_NEW_DELETE(str)                                                \</span>
+<a name="l00178"></a>00178 <span class="preprocessor"></span>
+<a name="l00179"></a>00179 <span class="preprocessor"></span><span class="preprocessor">#define SchedDefineTask(str)                                            \</span>
+<a name="l00180"></a>00180 <span class="preprocessor">    SchedTask* createTask_##str(void)                                   \</span>
+<a name="l00181"></a>00181 <span class="preprocessor">    {                                                                   \</span>
+<a name="l00182"></a>00182 <span class="preprocessor">        return new str();                                               \</span>
+<a name="l00183"></a>00183 <span class="preprocessor">    }</span>
+<a name="l00184"></a>00184 <span class="preprocessor"></span>
+<a name="l00185"></a>00185 <span class="preprocessor">#define SchedExternTask(str)                                            \</span>
+<a name="l00186"></a>00186 <span class="preprocessor">    extern                                                              \</span>
+<a name="l00187"></a>00187 <span class="preprocessor">    SchedTask* createTask_##str(void);</span>
+<a name="l00188"></a>00188 <span class="preprocessor"></span>
+<a name="l00189"></a>00189 <span class="preprocessor">#define SchedRegisterTask(cmd, str)             \</span>
+<a name="l00190"></a>00190 <span class="preprocessor">    register_task(cmd, createTask_##str);</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SpanPackList_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SpanPackList_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -44,7 +44,7 @@
 <a name="l00024"></a>00024 
 <a name="l00025"></a>00025 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/SpeThreads_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -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>Cerium: SpeThreads.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SpeThreads.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "types.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SpeThreads.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 SpeThreads::SpeThreads(<span class="keywordtype">int</span> num) : spe_num(num) {}
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 SpeThreads::~SpeThreads(<span class="keywordtype">void</span>)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mail = MY_SPE_COMMAND_EXIT;
+<a name="l00010"></a>00010     <span class="keywordtype">int</span> ret;
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; spe_num; i++) {
+<a name="l00013"></a>00013         send_mail(i, 1, &amp;mail);
+<a name="l00014"></a>00014     }
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; spe_num; i++) {
+<a name="l00017"></a>00017         pthread_join(threads[i], NULL);
+<a name="l00018"></a>00018         ret = spe_context_destroy(spe_ctx[i]);
+<a name="l00019"></a>00019         <span class="keywordflow">if</span> (ret) {
+<a name="l00020"></a>00020             perror(<span class="stringliteral">"[~SpeThreads] spe_context_destroy"</span>);
+<a name="l00021"></a>00021         }
+<a name="l00022"></a>00022     }
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024     spe_image_close(spe_handle);
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026     <span class="keyword">delete</span> [] spe_ctx;
+<a name="l00027"></a>00027     <span class="keyword">delete</span> [] threads;
+<a name="l00028"></a>00028     <span class="keyword">delete</span> [] args;
+<a name="l00029"></a>00029 }
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031 <span class="keywordtype">void</span>*
+<a name="l00032"></a>00032 SpeThreads::spe_thread_run(<span class="keywordtype">void</span> *arg)
+<a name="l00033"></a>00033 {
+<a name="l00034"></a>00034     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> entry = SPE_DEFAULT_ENTRY;
+<a name="l00035"></a>00035     <span class="comment">//spe_context_ptr_t ctx = (spe_context_ptr_t)arg;</span>
+<a name="l00036"></a>00036     thread_arg_t *arg_t = (thread_arg_t *)arg;
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038     spe_stop_info_t stop_info;
+<a name="l00039"></a>00039     <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> status;
+<a name="l00040"></a>00040     
+<a name="l00041"></a>00041     spe_context_run(arg_t-&gt;ctx, &amp;entry, 0, (<span class="keywordtype">void</span>*)arg_t-&gt;speid, NULL, &amp;stop_info);
+<a name="l00042"></a>00042     
+<a name="l00043"></a>00043     status = ((stop_info.result.spe_exit_code &amp; 0xff) &lt;&lt; 8)
+<a name="l00044"></a>00044         | (stop_info.result.spe_signal_code &amp; 0xff);
+<a name="l00045"></a>00045 
+<a name="l00046"></a>00046     <span class="keywordflow">switch</span>(stop_info.stop_reason) {
+<a name="l00047"></a>00047     <span class="keywordflow">case</span> SPE_EXIT:
+<a name="l00048"></a>00048         <span class="comment">//printf("SPE_EXIT stop_info.result.stop_exit_code=0x%x\n", stop_info.result.spe_exit_code);</span>
+<a name="l00049"></a>00049         <span class="keywordflow">break</span>;
+<a name="l00050"></a>00050     <span class="keywordflow">case</span> SPE_STOP_AND_SIGNAL:
+<a name="l00051"></a>00051         printf(<span class="stringliteral">"[SPE %d] SPE_STOP_AND_SIGNAL stop_info.result.stop_signal_code=%d\n"</span>, arg_t-&gt;speid, stop_info.result.spe_signal_code);
+<a name="l00052"></a>00052         <span class="keywordflow">break</span>;
+<a name="l00053"></a>00053     <span class="keywordflow">case</span> SPE_RUNTIME_ERROR:
+<a name="l00054"></a>00054         printf(<span class="stringliteral">"[SPE %d] SPE_RUNTIME_ERROR stop_info.result.spe_runtime_error=%d\n"</span>, arg_t-&gt;speid,  stop_info.result.spe_runtime_error);
+<a name="l00055"></a>00055         <span class="keywordflow">break</span>;
+<a name="l00056"></a>00056     <span class="keywordflow">case</span> SPE_RUNTIME_EXCEPTION:
+<a name="l00057"></a>00057         printf(<span class="stringliteral">"[SPE %d] SPE_RUNTIME_EXCEPTION stop_info.result.spe_runtime_exception=%d\n"</span>, arg_t-&gt;speid,  stop_info.result.spe_runtime_exception);
+<a name="l00058"></a>00058         <span class="keywordflow">break</span>;
+<a name="l00059"></a>00059     }
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061     pthread_exit(NULL);
+<a name="l00062"></a>00062 }
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064 <span class="keywordtype">void</span>*
+<a name="l00065"></a>00065 SpeThreads::frontend_thread_run(<span class="keywordtype">void</span> *arg)
+<a name="l00066"></a>00066 {
+<a name="l00067"></a>00067     pthread_t thread;
+<a name="l00068"></a>00068     thread_arg_t *arg_t = (thread_arg_t *)arg;
+<a name="l00069"></a>00069 
+<a name="l00070"></a>00070     pthread_create(&amp;thread, NULL, &amp;spe_thread_run, (<span class="keywordtype">void</span>*)arg_t-&gt;ctx);
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072     <span class="comment">// mail read  blocking Ǥ</span>
+<a name="l00073"></a>00073     <span class="comment">// ǸƤᤤ</span>
+<a name="l00074"></a>00074 
+<a name="l00075"></a>00075     pthread_exit(NULL);
+<a name="l00076"></a>00076 }
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078 <span class="keywordtype">void</span>
+<a name="l00079"></a>00079 SpeThreads::init(<span class="keywordtype">void</span>)
+<a name="l00080"></a>00080 {
+<a name="l00081"></a>00081     spe_handle = spe_image_open(SPE_ELF);
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083     <span class="keywordflow">if</span> (spe_handle == NULL) {
+<a name="l00084"></a>00084         perror(<span class="stringliteral">"spe_image_open"</span>);
+<a name="l00085"></a>00085         exit(EXIT_FAILURE);
+<a name="l00086"></a>00086     }
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088     spe_ctx = <span class="keyword">new</span> spe_context_ptr_t[spe_num];
+<a name="l00089"></a>00089     threads = <span class="keyword">new</span> pthread_t[spe_num];
+<a name="l00090"></a>00090     args    = <span class="keyword">new</span> thread_arg_t[spe_num];
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; spe_num; i++) {
+<a name="l00093"></a>00093         args[i].speid = i;
+<a name="l00094"></a>00094         spe_ctx[i] = spe_context_create(0, NULL);
+<a name="l00095"></a>00095         spe_program_load(spe_ctx[i], spe_handle);
+<a name="l00096"></a>00096         args[i].ctx = spe_ctx[i];
+<a name="l00097"></a>00097     }
+<a name="l00098"></a>00098 
+<a name="l00099"></a>00099     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; spe_num; i++) {
+<a name="l00100"></a>00100 <span class="preprocessor">#if 0</span>
+<a name="l00101"></a>00101 <span class="preprocessor"></span>        pthread_create(&amp;threads[i], NULL,
+<a name="l00102"></a>00102                        &amp;frontend_thread_run, (<span class="keywordtype">void</span>*)&amp;args[i]);
+<a name="l00103"></a>00103 <span class="preprocessor">#else</span>
+<a name="l00104"></a>00104 <span class="preprocessor"></span>        pthread_create(&amp;threads[i], NULL,
+<a name="l00105"></a>00105                        &amp;spe_thread_run, (<span class="keywordtype">void</span>*)&amp;args[i]);
+<a name="l00106"></a>00106 <span class="preprocessor">#endif</span>
+<a name="l00107"></a>00107 <span class="preprocessor"></span>    }
+<a name="l00108"></a>00108 }
+<a name="l00109"></a>00109 
+<a name="l00110"></a>00110 
+<a name="l00119"></a>00119 <span class="keywordtype">int</span>
+<a name="l00120"></a>00120 SpeThreads::get_mail(<span class="keywordtype">int</span> speid, <span class="keywordtype">int</span> count, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* ret)
+<a name="l00121"></a>00121 {   
+<a name="l00122"></a>00122     <span class="keywordflow">while</span>(spe_out_mbox_status(spe_ctx[speid]) &lt; count);    
+<a name="l00123"></a>00123     <span class="keywordflow">return</span> spe_out_mbox_read(spe_ctx[speid], ret, count);    
+<a name="l00124"></a>00124 }
+<a name="l00125"></a>00125 
+<a name="l00126"></a>00126 <span class="keywordtype">int</span>
+<a name="l00127"></a>00127 SpeThreads::check_mail(<span class="keywordtype">int</span> speid, <span class="keywordtype">int</span> count, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* ret)
+<a name="l00128"></a>00128 {
+<a name="l00129"></a>00129     <span class="keywordflow">if</span> (spe_out_mbox_status(spe_ctx[speid]) &gt;= count) {    
+<a name="l00130"></a>00130         <span class="keywordflow">return</span> spe_out_mbox_read(spe_ctx[speid], ret, count);   
+<a name="l00131"></a>00131     } <span class="keywordflow">else</span> {
+<a name="l00132"></a>00132         <span class="keywordflow">return</span> 0;            
+<a name="l00133"></a>00133     }
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135 
+<a name="l00150"></a>00150 <span class="keywordtype">void</span>
+<a name="l00151"></a>00151 SpeThreads::send_mail(<span class="keywordtype">int</span> speid, <span class="keywordtype">int</span> num, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *data)
+<a name="l00152"></a>00152 {
+<a name="l00153"></a>00153     spe_in_mbox_write(spe_ctx[speid], data, num, SPE_MBOX_ALL_BLOCKING);
+<a name="l00154"></a>00154 }
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156 <span class="keywordtype">void</span>
+<a name="l00157"></a>00157 SpeThreads::add_output_tasklist(<span class="keywordtype">int</span> command, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> buff, <span class="keywordtype">int</span> alloc_size)
+<a name="l00158"></a>00158 {
+<a name="l00159"></a>00159     <span class="comment">/*</span>
+<a name="l00160"></a>00160 <span class="comment">     * output TaskList ̵п</span>
+<a name="l00161"></a>00161 <span class="comment">     *  TaskList  allocate  Task ɲ</span>
+<a name="l00162"></a>00162 <span class="comment">     * command б Task ν¹Ԥ</span>
+<a name="l00163"></a>00163 <span class="comment">     * SPE  data 񤭽Фä PPE ¦ǽ</span>
+<a name="l00164"></a>00164 <span class="comment">     */</span>
+<a name="l00165"></a>00165     
+<a name="l00166"></a>00166 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/SpeThreads_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SpeThreads_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -57,7 +57,7 @@
 <a name="l00037"></a>00037 
 <a name="l00038"></a>00038 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SpuDraw_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SpuDraw_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -62,7 +62,7 @@
 <a name="l00042"></a>00042 
 <a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SpuSpan_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SpuSpan_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/Start_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: Start.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>Start.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "Start.h"</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SysTask.h"</span>
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 SchedDefineTask(Start);
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 <span class="keywordtype">int</span>
+<a name="l00007"></a>00007 Start::run(<span class="keywordtype">void</span> *rbuf, <span class="keywordtype">void</span> *wbuf)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     <span class="keywordflow">return</span> 0;
+<a name="l00010"></a>00010 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/Start_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Start_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -34,7 +34,7 @@
 <a name="l00014"></a>00014 
 <a name="l00015"></a>00015 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/SymTable_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,92 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SymTable.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SymTable.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SymTable.h"</span>
+<a name="l00003"></a>00003 
+<a name="l00004"></a>00004 SymTable::~SymTable(<span class="keywordtype">void</span>)
+<a name="l00005"></a>00005 {
+<a name="l00006"></a>00006     SymTbPtr tb;
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; symtb_index; i++) {
+<a name="l00009"></a>00009         tb = &amp;symtb[i];
+<a name="l00010"></a>00010         <span class="keyword">delete</span> [] tb-&gt;sym;
+<a name="l00011"></a>00011     }
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013     <span class="keyword">delete</span> [] symtb;
+<a name="l00014"></a>00014 }
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016 <span class="keywordtype">void</span>
+<a name="l00017"></a>00017 SymTable::init(<span class="keywordtype">void</span>)
+<a name="l00018"></a>00018 {
+<a name="l00019"></a>00019     symtb = <span class="keyword">new</span> SymTb[SYM_MAX_SIZE];
+<a name="l00020"></a>00020     symtb_index = 0;
+<a name="l00021"></a>00021 }
+<a name="l00022"></a>00022 
+<a name="l00023"></a>00023 <span class="keywordtype">void</span>
+<a name="l00024"></a>00024 SymTable::set_symbol(<span class="keyword">const</span> <span class="keywordtype">char</span> *sym, FuncObject addr)
+<a name="l00025"></a>00025 {
+<a name="l00026"></a>00026     SymTbPtr tb = &amp;symtb[symtb_index++];
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028     tb-&gt;sym = <span class="keyword">new</span> <span class="keywordtype">char</span>[strlen(sym)+1];
+<a name="l00029"></a>00029     memcpy(tb-&gt;sym, sym, strlen(sym)+1);
+<a name="l00030"></a>00030     tb-&gt;address = addr;
+<a name="l00031"></a>00031 }
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033 <span class="keywordtype">void</span>
+<a name="l00034"></a>00034 SymTable::set_func(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, FuncObject addr)
+<a name="l00035"></a>00035 {
+<a name="l00036"></a>00036      SymTbPtr tb = &amp;symtb[id];
+<a name="l00037"></a>00037 
+<a name="l00038"></a>00038      tb-&gt;address = addr;
+<a name="l00039"></a>00039 }
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041 SymTable::FuncObject
+<a name="l00042"></a>00042 SymTable::get_address(<span class="keywordtype">int</span> fd)
+<a name="l00043"></a>00043 {
+<a name="l00044"></a>00044     <span class="keywordflow">if</span> (fd &gt;= symtb_index) {
+<a name="l00045"></a>00045         <span class="comment">// Fix me</span>
+<a name="l00046"></a>00046         <span class="comment">// error process</span>
+<a name="l00047"></a>00047     }
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049     <span class="keywordflow">return</span> symtb[fd].address;
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051 
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053 <span class="keywordtype">int</span>
+<a name="l00054"></a>00054 SymTable::get_fd(<span class="keyword">const</span> <span class="keywordtype">char</span> *sym)
+<a name="l00055"></a>00055 {
+<a name="l00056"></a>00056     SymTbPtr tb;
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; SYM_MAX_SIZE; i++) {
+<a name="l00059"></a>00059         tb = &amp;symtb[i];
+<a name="l00060"></a>00060         <span class="keywordflow">if</span> (strcmp(tb-&gt;sym, sym) == 0) {
+<a name="l00061"></a>00061             <span class="keywordflow">return</span> i;
+<a name="l00062"></a>00062         }
+<a name="l00063"></a>00063     }
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065     <span class="keywordflow">return</span> -1;
+<a name="l00066"></a>00066 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/SymTable_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SymTable_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -46,7 +46,7 @@
 <a name="l00026"></a>00026 
 <a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/SysTask_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/SysTask_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -27,7 +27,7 @@
 <a name="l00007"></a>00007 
 <a name="l00008"></a>00008 <span class="keyword">extern</span> <span class="keywordtype">void</span> systask_register(<span class="keywordtype">void</span>);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Tapestry_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Tapestry_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -66,7 +66,7 @@
 <a name="l00123"></a>00123 
 <a name="l00124"></a>00124 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/TaskGroup_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/TaskGroup_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -49,7 +49,7 @@
 <a name="l00040"></a>00040 
 <a name="l00041"></a>00041 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/TaskListInfo_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskListInfo.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskListInfo.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "TaskListInfo.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 TaskListInfo::TaskListInfo(<span class="keywordtype">void</span>)
+<a name="l00006"></a>00006     :taskListPool(NULL), freeTaskList(NULL) {}
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 TaskListInfo::~TaskListInfo(<span class="keywordtype">void</span>) { destroy(); }
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 <span class="keywordtype">int</span>
+<a name="l00011"></a>00011 TaskListInfo::init(<span class="keywordtype">int</span> num)
+<a name="l00012"></a>00012 {
+<a name="l00013"></a>00013     <span class="keywordflow">if</span> (taskListPool == NULL) {
+<a name="l00014"></a>00014         <span class="keywordflow">return</span> extend_pool(num);
+<a name="l00015"></a>00015     }
+<a name="l00016"></a>00016     <span class="keywordflow">return</span> 0;
+<a name="l00017"></a>00017 }
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 <span class="keywordtype">int</span>
+<a name="l00020"></a>00020 TaskListInfo::extend_pool(<span class="keywordtype">int</span> num)
+<a name="l00021"></a>00021 {
+<a name="l00022"></a>00022     TaskListPtr q = NULL;
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024     q = (TaskListPtr)malloc(<span class="keyword">sizeof</span>(TaskList)*(num+1));
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026     <span class="keywordflow">if</span> (q == NULL) {
+<a name="l00027"></a>00027         <span class="keywordflow">return</span> -1;
+<a name="l00028"></a>00028     }
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030     q-&gt;next = taskListPool;
+<a name="l00031"></a>00031     taskListPool = q;
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033     <span class="comment">/* Connect all free pack_list in the pool */</span>
+<a name="l00034"></a>00034     <span class="keywordflow">for</span> (q = taskListPool + 1; --num &gt; 0; q++) {
+<a name="l00035"></a>00035         q-&gt;next = q + 1;
+<a name="l00036"></a>00036     }
+<a name="l00037"></a>00037     q-&gt;next = freeTaskList;
+<a name="l00038"></a>00038     freeTaskList = taskListPool + 1;
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     <span class="keywordflow">return</span> 0;
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042 
+<a name="l00043"></a>00043 TaskListPtr
+<a name="l00044"></a>00044 TaskListInfo::create(<span class="keywordtype">void</span>)
+<a name="l00045"></a>00045 {
+<a name="l00046"></a>00046     TaskListPtr q;
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048     <span class="keywordflow">if</span> (freeTaskList == NULL) {
+<a name="l00049"></a>00049         extend_pool(10);
+<a name="l00050"></a>00050     }
+<a name="l00051"></a>00051     q = freeTaskList;
+<a name="l00052"></a>00052     freeTaskList = freeTaskList-&gt;next;
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054     q-&gt;length = 0;
+<a name="l00055"></a>00055     q-&gt;next = 0;
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057     <span class="keywordflow">return</span> q;
+<a name="l00058"></a>00058 }
+<a name="l00059"></a>00059 
+<a name="l00060"></a>00060 <span class="keywordtype">void</span>
+<a name="l00061"></a>00061 TaskListInfo::free(TaskListPtr q)
+<a name="l00062"></a>00062 {
+<a name="l00063"></a>00063     q-&gt;next = freeTaskList;
+<a name="l00064"></a>00064     freeTaskList = q;
+<a name="l00065"></a>00065 }
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067 <span class="keywordtype">void</span>
+<a name="l00068"></a>00068 TaskListInfo::destroy(<span class="keywordtype">void</span>)
+<a name="l00069"></a>00069 {
+<a name="l00070"></a>00070     TaskListPtr q, tmp;
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072     <span class="comment">//for (q = taskListPool; q; q = q-&gt;next) {</span>
+<a name="l00073"></a>00073     q = taskListPool;
+<a name="l00074"></a>00074     <span class="keywordflow">while</span> (q) {
+<a name="l00075"></a>00075         tmp = q-&gt;next;
+<a name="l00076"></a>00076         free(q);
+<a name="l00077"></a>00077         q = tmp;
+<a name="l00078"></a>00078     }
+<a name="l00079"></a>00079     freeTaskList = taskListPool = NULL;
+<a name="l00080"></a>00080 }
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082 TaskListPtr
+<a name="l00083"></a>00083 TaskListInfo::append(TaskListPtr list, TaskListPtr q)
+<a name="l00084"></a>00084 {
+<a name="l00085"></a>00085     TaskListPtr p = list;
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087     <span class="keywordflow">if</span> (!p) {
+<a name="l00088"></a>00088         <span class="keywordflow">return</span> q;
+<a name="l00089"></a>00089     } <span class="keywordflow">else</span> {
+<a name="l00090"></a>00090         <span class="keywordflow">while</span> (p-&gt;next) p = p-&gt;next;
+<a name="l00091"></a>00091         p-&gt;next = q;
+<a name="l00092"></a>00092         <span class="keywordflow">return</span> list;
+<a name="l00093"></a>00093     }
+<a name="l00094"></a>00094 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/TaskListInfo_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/TaskListInfo_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -55,7 +55,7 @@
 <a name="l00035"></a>00035 
 <a name="l00036"></a>00036 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/TaskList_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/TaskList_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -49,7 +49,7 @@
 <a name="l00029"></a>00029 
 <a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/TaskManagerImpl_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskManagerImpl.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskManagerImpl.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "TaskManagerImpl.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "types.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "error.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "../sys_task/SysTask.h"</span>
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 <span class="keyword">static</span> HTaskPtr systask_start;
+<a name="l00008"></a>00008 <span class="keyword">static</span> HTaskPtr systask_finish;
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 <span class="keywordtype">void</span>
+<a name="l00011"></a>00011 noaction(<span class="keywordtype">void</span> *p)
+<a name="l00012"></a>00012 {
+<a name="l00013"></a>00013 }
+<a name="l00014"></a>00014 
+<a name="l00015"></a>00015 TaskManagerImpl::TaskManagerImpl(<span class="keywordtype">int</span> num)
+<a name="l00016"></a>00016     : machineNum(num), activeTaskQueue(NULL), waitTaskQueue(NULL) {}
+<a name="l00017"></a>00017 
+<a name="l00023"></a>00023 <span class="keywordtype">void</span>
+<a name="l00024"></a>00024 TaskManagerImpl::systask_init(<span class="keywordtype">void</span>)
+<a name="l00025"></a>00025 {
+<a name="l00026"></a>00026     systask_register();
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028     systask_start = create_task(SYSTASK_START);
+<a name="l00029"></a>00029     systask_finish = create_task(SYSTASK_FINISH);
+<a name="l00030"></a>00030 
+<a name="l00031"></a>00031     systask_start-&gt;spawn();
+<a name="l00032"></a>00032 
+<a name="l00033"></a>00033     <span class="comment">// systask_finish  spawn </span>
+<a name="l00034"></a>00034     <span class="comment">//   systask_finish-&gt;wait_for(systask_finish);</span>
+<a name="l00035"></a>00035     <span class="comment">// Ȥʤä̵¥롼פˤʤΤǡ</span>
+<a name="l00036"></a>00036     <span class="comment">// Ū append_waitTask() </span>
+<a name="l00037"></a>00037     append_waitTask(systask_finish);
+<a name="l00038"></a>00038 }
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 HTaskPtr
+<a name="l00041"></a>00041 TaskManagerImpl::create_task(<span class="keywordtype">int</span> cmd)
+<a name="l00042"></a>00042 {
+<a name="l00043"></a>00043     HTaskPtr new_task;
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045     new_task = bufferManager-&gt;create_task(cmd);
+<a name="l00046"></a>00046     new_task-&gt;post_func = noaction;
+<a name="l00047"></a>00047     new_task-&gt;mimpl = <span class="keyword">this</span>;
+<a name="l00048"></a>00048 
+<a name="l00049"></a>00049     <span class="keywordflow">return</span> new_task;
+<a name="l00050"></a>00050 }
+<a name="l00051"></a>00051 
+<a name="l00057"></a>00057 <span class="keywordtype">void</span>
+<a name="l00058"></a>00058 TaskManagerImpl::set_task_depend(HTaskPtr master, HTaskPtr slave)
+<a name="l00059"></a>00059 {
+<a name="l00060"></a>00060     TaskQueuePtr m, s;
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062     m = bufferManager-&gt;create_taskQueue(master);
+<a name="l00063"></a>00063     s = bufferManager-&gt;create_taskQueue(slave);
+<a name="l00064"></a>00064 
+<a name="l00065"></a>00065     master-&gt;wait_me = TaskQueue::append(master-&gt;wait_me, s);
+<a name="l00066"></a>00066     slave-&gt;wait_i   = TaskQueue::append(slave-&gt;wait_i, m);
+<a name="l00067"></a>00067 }
+<a name="l00068"></a>00068 
+<a name="l00074"></a>00074 <span class="keywordtype">void</span>
+<a name="l00075"></a>00075 TaskManagerImpl::spawn_task(HTaskPtr task)
+<a name="l00076"></a>00076 {
+<a name="l00077"></a>00077     <span class="comment">// waiter // master</span>
+<a name="l00078"></a>00078     <span class="comment">// waitee // slave</span>
+<a name="l00079"></a>00079     <span class="keywordflow">if</span> (task-&gt;wait_i == NULL) {
+<a name="l00080"></a>00080         append_activeTask(task);
+<a name="l00081"></a>00081     } <span class="keywordflow">else</span> {
+<a name="l00082"></a>00082         append_waitTask(task);  
+<a name="l00083"></a>00083     }
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085     systask_finish-&gt;wait_for(task);
+<a name="l00086"></a>00086 }
+<a name="l00087"></a>00087 
+<a name="l00091"></a>00091 <span class="keywordtype">void</span>
+<a name="l00092"></a>00092 TaskManagerImpl::append_activeTask(HTaskPtr task)
+<a name="l00093"></a>00093 {
+<a name="l00094"></a>00094     TaskQueuePtr q;
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096     q = bufferManager-&gt;create_taskQueue(task);
+<a name="l00097"></a>00097     activeTaskQueue = TaskQueue::append(activeTaskQueue, q);
+<a name="l00098"></a>00098 }
+<a name="l00099"></a>00099 
+<a name="l00106"></a>00106 <span class="keywordtype">void</span>
+<a name="l00107"></a>00107 TaskManagerImpl::set_task_cpu(HTaskPtr task, CPU_TYPE type)
+<a name="l00108"></a>00108 {
+<a name="l00109"></a>00109     task-&gt;cpu_type = type;
+<a name="l00110"></a>00110 }
+<a name="l00111"></a>00111 
+<a name="l00119"></a>00119 <span class="keywordtype">void</span>
+<a name="l00120"></a>00120 TaskManagerImpl::check_task_finish(HTaskPtr task)
+<a name="l00121"></a>00121 {
+<a name="l00122"></a>00122     notify_wait_taskQueue(task, task-&gt;wait_me);
+<a name="l00123"></a>00123     task-&gt;post_func(task-&gt;post_arg);
+<a name="l00124"></a>00124     bufferManager-&gt;free_task(task);
+<a name="l00125"></a>00125 }
+<a name="l00126"></a>00126 
+<a name="l00131"></a>00131 <span class="keywordtype">void</span>
+<a name="l00132"></a>00132 TaskManagerImpl::notify_wait_taskQueue(HTaskPtr depend, TaskQueuePtr list)
+<a name="l00133"></a>00133 {
+<a name="l00134"></a>00134     TaskQueuePtr p;
+<a name="l00135"></a>00135     HTaskPtr task;    
+<a name="l00136"></a>00136 
+<a name="l00137"></a>00137     p = list; <span class="comment">// wait task list</span>
+<a name="l00138"></a>00138 
+<a name="l00139"></a>00139     <span class="keywordflow">while</span> (p) {
+<a name="l00140"></a>00140         task = (HTaskPtr)p-&gt;task;
+<a name="l00141"></a>00141         task-&gt;wait_i = remove_taskQueue_eq_task(task-&gt;wait_i, depend);
+<a name="l00142"></a>00142         p = p-&gt;next;
+<a name="l00143"></a>00143     }
+<a name="l00144"></a>00144 
+<a name="l00145"></a>00145     remove_taskQueue_all(list);
+<a name="l00146"></a>00146 }
+<a name="l00147"></a>00147 
+<a name="l00148"></a>00148 <span class="keywordtype">void</span>
+<a name="l00149"></a>00149 TaskManagerImpl::append_waitTask(HTaskPtr task)
+<a name="l00150"></a>00150 {
+<a name="l00151"></a>00151     TaskQueuePtr q;
+<a name="l00152"></a>00152 
+<a name="l00153"></a>00153     q = bufferManager-&gt;create_taskQueue(task);
+<a name="l00154"></a>00154     waitTaskQueue = TaskQueue::append(waitTaskQueue, q);
+<a name="l00155"></a>00155 }
+<a name="l00156"></a>00156 
+<a name="l00161"></a>00161 <span class="keywordtype">void</span>
+<a name="l00162"></a>00162 TaskManagerImpl::wakeup_waitTask(<span class="keywordtype">void</span>)
+<a name="l00163"></a>00163 {
+<a name="l00164"></a>00164     TaskQueuePtr p, tmp;
+<a name="l00165"></a>00165 
+<a name="l00166"></a>00166     p = waitTaskQueue;
+<a name="l00167"></a>00167     <span class="keywordflow">while</span> (p) {
+<a name="l00168"></a>00168         HTaskPtr task = (HTaskPtr)p-&gt;task;
+<a name="l00169"></a>00169         tmp = p;
+<a name="l00170"></a>00170         p = p-&gt;next;
+<a name="l00171"></a>00171         if (task-&gt;wait_i == NULL) {
+<a name="l00172"></a>00172             append_activeTask(task);
+<a name="l00173"></a>00173             waitTaskQueue = remove_taskQueue(waitTaskQueue, tmp);
+<a name="l00174"></a>00174         }
+<a name="l00175"></a>00175     }
+<a name="l00176"></a>00176 }
+<a name="l00177"></a>00177 
+<a name="l00178"></a>00178 <span class="keywordtype">void</span>
+<a name="l00179"></a>00179 TaskManagerImpl::remove_taskQueue_all(TaskQueuePtr list)
+<a name="l00180"></a>00180 {
+<a name="l00181"></a>00181     TaskQueuePtr p = list;
+<a name="l00182"></a>00182     TaskQueuePtr p1;
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184     <span class="keywordflow">while</span> (p != NULL) {
+<a name="l00185"></a>00185         p1 = p-&gt;next;
+<a name="l00186"></a>00186         bufferManager-&gt;free_taskQueue(p);
+<a name="l00187"></a>00187         p = p1;
+<a name="l00188"></a>00188     }
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190 
+<a name="l00196"></a>00196 TaskQueuePtr
+<a name="l00197"></a>00197 TaskManagerImpl::remove_taskQueue_eq_task(TaskQueuePtr list, HTaskPtr task)
+<a name="l00198"></a>00198 {
+<a name="l00199"></a>00199     TaskQueuePtr p = list;
+<a name="l00200"></a>00200     TaskQueuePtr p1;
+<a name="l00201"></a>00201     
+<a name="l00202"></a>00202     <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span> p;
+<a name="l00203"></a>00203 
+<a name="l00204"></a>00204     <span class="keywordflow">if</span> (p-&gt;task == task) {
+<a name="l00205"></a>00205         list = list-&gt;next;
+<a name="l00206"></a>00206         bufferManager-&gt;free_taskQueue(p);
+<a name="l00207"></a>00207     } <span class="keywordflow">else</span> {
+<a name="l00208"></a>00208         p1 = p-&gt;next;
+<a name="l00209"></a>00209         <span class="keywordflow">while</span> (p1 &amp;&amp; p1-&gt;task &amp;&amp; p1-&gt;task != task) {
+<a name="l00210"></a>00210             p1 = p1-&gt;next;
+<a name="l00211"></a>00211             p = p-&gt;next;
+<a name="l00212"></a>00212         }
+<a name="l00213"></a>00213         <span class="keywordflow">if</span> (p1) {
+<a name="l00214"></a>00214             p-&gt;next = p1-&gt;next;
+<a name="l00215"></a>00215             bufferManager-&gt;free_taskQueue(p1);
+<a name="l00216"></a>00216         }
+<a name="l00217"></a>00217     }
+<a name="l00218"></a>00218 
+<a name="l00219"></a>00219     <span class="keywordflow">return</span> list;    
+<a name="l00220"></a>00220 }
+<a name="l00221"></a>00221 
+<a name="l00222"></a>00222 TaskQueuePtr
+<a name="l00223"></a>00223 TaskManagerImpl::remove_taskQueue(TaskQueuePtr list, TaskQueuePtr q)
+<a name="l00224"></a>00224 {
+<a name="l00225"></a>00225     TaskQueuePtr p = list;
+<a name="l00226"></a>00226     TaskQueuePtr p1;
+<a name="l00227"></a>00227 
+<a name="l00228"></a>00228     <span class="keywordflow">if</span> (!p) <span class="keywordflow">return</span> p;
+<a name="l00229"></a>00229 
+<a name="l00230"></a>00230     <span class="keywordflow">if</span> (p == q) {
+<a name="l00231"></a>00231         list = list-&gt;next;
+<a name="l00232"></a>00232         bufferManager-&gt;free_taskQueue(p);
+<a name="l00233"></a>00233     } <span class="keywordflow">else</span> {
+<a name="l00234"></a>00234         p1 = p-&gt;next;
+<a name="l00235"></a>00235         <span class="keywordflow">while</span> (p1 &amp;&amp; p1 != q) {
+<a name="l00236"></a>00236             p1 = p1-&gt;next;
+<a name="l00237"></a>00237             p = p-&gt;next;
+<a name="l00238"></a>00238         }
+<a name="l00239"></a>00239         <span class="keywordflow">if</span> (p1) {
+<a name="l00240"></a>00240             p-&gt;next = p1-&gt;next;
+<a name="l00241"></a>00241             bufferManager-&gt;free_taskQueue(p1);
+<a name="l00242"></a>00242         }
+<a name="l00243"></a>00243     }
+<a name="l00244"></a>00244 
+<a name="l00245"></a>00245     <span class="keywordflow">return</span> list;
+<a name="l00246"></a>00246 }
+<a name="l00247"></a>00247 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/TaskManagerImpl_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/TaskManagerImpl_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -43,7 +43,7 @@
 <a name="l00023"></a>00023     <span class="keywordtype">int</span> machineNum;
 <a name="l00024"></a>00024     TaskQueuePtr activeTaskQueue;
 <a name="l00025"></a>00025     TaskQueuePtr waitTaskQueue;
-<a name="l00026"></a>00026     BufferManager *bufferManager;
+<a name="l00026"></a>00026     <a class="code" href="classBufferManager.html">BufferManager</a> *bufferManager;
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028     <span class="comment">/* functions */</span>
 <a name="l00029"></a>00029     <span class="comment">// system</span>
@@ -70,7 +70,7 @@
 <a name="l00050"></a>00050 };
 <a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/TaskManager_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskManager.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskManager.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "TaskManager.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 TaskManager::TaskManager(<span class="keywordtype">int</span> num) : machineNum(num)
+<a name="l00004"></a>00004 {
+<a name="l00005"></a>00005     gen_random = <span class="keyword">new</span> Random;
+<a name="l00006"></a>00006 }
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 TaskManager::~TaskManager(<span class="keywordtype">void</span>)
+<a name="l00009"></a>00009 {
+<a name="l00010"></a>00010     <span class="keyword">delete</span> m_impl;
+<a name="l00011"></a>00011     <span class="keyword">delete</span> gen_random;
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013 
+<a name="l00030"></a>00030 <span class="keyword">extern</span> TaskManagerImpl* create_impl(<span class="keywordtype">int</span>);
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032 <span class="keywordtype">void</span>
+<a name="l00033"></a>00033 TaskManager::init(<span class="keywordtype">void</span>)
+<a name="l00034"></a>00034 {
+<a name="l00035"></a>00035     m_impl = create_impl(machineNum);
+<a name="l00036"></a>00036     m_impl-&gt;init();
+<a name="l00037"></a>00037     m_impl-&gt;systask_init();
+<a name="l00038"></a>00038 }
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040 <span class="keywordtype">void</span>
+<a name="l00041"></a>00041 TaskManager::finish(<span class="keywordtype">void</span>)
+<a name="l00042"></a>00042 {
+<a name="l00043"></a>00043     <span class="keyword">delete</span> m_impl;
+<a name="l00044"></a>00044 }
+<a name="l00045"></a>00045 
+<a name="l00051"></a>00051 HTaskPtr
+<a name="l00052"></a>00052 TaskManager::create_task(<span class="keywordtype">int</span> cmd)
+<a name="l00053"></a>00053 {
+<a name="l00054"></a>00054     <span class="keywordflow">return</span> m_impl-&gt;create_task(cmd);
+<a name="l00055"></a>00055 }
+<a name="l00056"></a>00056 
+<a name="l00060"></a>00060 <span class="keywordtype">void</span>
+<a name="l00061"></a>00061 TaskManager::set_TMend(<span class="keywordtype">void</span> (*endf)(<span class="keywordtype">void</span>))
+<a name="l00062"></a>00062 {
+<a name="l00063"></a>00063     tm_end = endf;
+<a name="l00064"></a>00064 }
+<a name="l00065"></a>00065 
+<a name="l00066"></a>00066 <span class="keywordtype">void</span>
+<a name="l00067"></a>00067 TaskManager::run(<span class="keywordtype">void</span>)
+<a name="l00068"></a>00068 {
+<a name="l00069"></a>00069     m_impl-&gt;run();
+<a name="l00070"></a>00070 }
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="keywordtype">void</span>*
+<a name="l00073"></a>00073 TaskManager::allocate(<span class="keywordtype">int</span> size) {
+<a name="l00074"></a>00074     <span class="keywordflow">return</span> m_impl-&gt;allocate(size);
+<a name="l00075"></a>00075 }
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077 <span class="keywordtype">int</span>
+<a name="l00078"></a>00078 TaskManager::get_cpuNum(<span class="keywordtype">void</span>)
+<a name="l00079"></a>00079 {
+<a name="l00080"></a>00080     <span class="keywordflow">return</span> machineNum;
+<a name="l00081"></a>00081 }
+<a name="l00082"></a>00082 
+<a name="l00083"></a>00083 <span class="keywordtype">int</span>
+<a name="l00084"></a>00084 TaskManager::get_random(<span class="keywordtype">void</span>)
+<a name="l00085"></a>00085 {
+<a name="l00086"></a>00086     <span class="keywordflow">return</span> gen_random-&gt;getData();
+<a name="l00087"></a>00087 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/TaskManager_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/TaskManager_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -60,7 +60,7 @@
 <a name="l00040"></a>00040 <span class="preprocessor"></span>
 <a name="l00041"></a>00041 <span class="keyword">extern</span> TaskManager *manager;
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/TaskQueueInfo_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,114 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskQueueInfo.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskQueueInfo.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "TaskQueueInfo.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 TaskQueueInfo::TaskQueueInfo(<span class="keywordtype">void</span>)
+<a name="l00006"></a>00006     :taskQueuePool(NULL), freeTaskQueue(NULL) {}
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008 TaskQueueInfo::~TaskQueueInfo(<span class="keywordtype">void</span>) { destroy(); }
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 <span class="keywordtype">int</span>
+<a name="l00011"></a>00011 TaskQueueInfo::init(<span class="keywordtype">int</span> num)
+<a name="l00012"></a>00012 {
+<a name="l00013"></a>00013     <span class="keywordflow">if</span> (taskQueuePool == NULL) {
+<a name="l00014"></a>00014         <span class="keywordflow">return</span> extend_pool(num);
+<a name="l00015"></a>00015     }
+<a name="l00016"></a>00016     <span class="keywordflow">return</span> 0;
+<a name="l00017"></a>00017 }
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019 <span class="keywordtype">int</span>
+<a name="l00020"></a>00020 TaskQueueInfo::extend_pool(<span class="keywordtype">int</span> num)
+<a name="l00021"></a>00021 {
+<a name="l00022"></a>00022     TaskQueuePtr q = NULL;
+<a name="l00023"></a>00023 
+<a name="l00024"></a>00024     q = (TaskQueuePtr)malloc(<span class="keyword">sizeof</span>(TaskQueue)*(num+1));
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026     <span class="keywordflow">if</span> (q == NULL) {
+<a name="l00027"></a>00027         <span class="keywordflow">return</span> -1;
+<a name="l00028"></a>00028     }
+<a name="l00029"></a>00029     q-&gt;next = taskQueuePool;
+<a name="l00030"></a>00030     taskQueuePool = q;
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032     <span class="comment">/* Connect all free queue in the pool */</span>
+<a name="l00033"></a>00033     <span class="keywordflow">for</span> (q = taskQueuePool + 1; --num &gt; 0; q++) {
+<a name="l00034"></a>00034         q-&gt;next = q + 1;
+<a name="l00035"></a>00035     }
+<a name="l00036"></a>00036     q-&gt;next = freeTaskQueue;
+<a name="l00037"></a>00037     freeTaskQueue = taskQueuePool + 1;
+<a name="l00038"></a>00038 
+<a name="l00039"></a>00039     <span class="keywordflow">return</span> 0;
+<a name="l00040"></a>00040 }
+<a name="l00041"></a>00041 
+<a name="l00042"></a>00042 TaskQueuePtr
+<a name="l00043"></a>00043 TaskQueueInfo::create(TaskPtr task)
+<a name="l00044"></a>00044 {
+<a name="l00045"></a>00045     TaskQueuePtr q;
+<a name="l00046"></a>00046 
+<a name="l00047"></a>00047     <span class="keywordflow">if</span> (freeTaskQueue == NULL) {
+<a name="l00048"></a>00048         extend_pool(100);
+<a name="l00049"></a>00049     }
+<a name="l00050"></a>00050     q = freeTaskQueue;
+<a name="l00051"></a>00051     freeTaskQueue = freeTaskQueue-&gt;next;
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053     q-&gt;task = task;
+<a name="l00054"></a>00054     q-&gt;next = NULL;
+<a name="l00055"></a>00055 
+<a name="l00056"></a>00056     <span class="keywordflow">return</span> q;
+<a name="l00057"></a>00057 }
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059 
+<a name="l00060"></a>00060 <span class="keywordtype">void</span>
+<a name="l00061"></a>00061 TaskQueueInfo::free(TaskQueuePtr q)
+<a name="l00062"></a>00062 {
+<a name="l00063"></a>00063     q-&gt;next = freeTaskQueue;
+<a name="l00064"></a>00064     freeTaskQueue = q;
+<a name="l00065"></a>00065 }
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068 <span class="keywordtype">void</span>
+<a name="l00069"></a>00069 TaskQueueInfo::destroy(<span class="keywordtype">void</span>)
+<a name="l00070"></a>00070 {
+<a name="l00071"></a>00071     TaskQueuePtr q, tmp;
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073 <span class="preprocessor">#if 1</span>
+<a name="l00074"></a>00074 <span class="preprocessor"></span>    q = taskQueuePool;
+<a name="l00075"></a>00075     <span class="keywordflow">while</span> (q) {
+<a name="l00076"></a>00076         tmp = q-&gt;next;
+<a name="l00077"></a>00077         free(q);
+<a name="l00078"></a>00078         q = tmp;
+<a name="l00079"></a>00079     }
+<a name="l00080"></a>00080 <span class="preprocessor">#else</span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span>    <span class="keywordflow">for</span> (q = taskQueuePool; q; q = q-&gt;next) {
+<a name="l00082"></a>00082         free(q);
+<a name="l00083"></a>00083     }
+<a name="l00084"></a>00084 <span class="preprocessor">#endif</span>
+<a name="l00085"></a>00085 <span class="preprocessor"></span>    freeTaskQueue = taskQueuePool = NULL;
+<a name="l00086"></a>00086 
+<a name="l00087"></a>00087 
+<a name="l00088"></a>00088 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/TaskQueueInfo_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/TaskQueueInfo_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -48,7 +48,7 @@
 <a name="l00028"></a>00028 
 <a name="l00029"></a>00029 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/TaskQueue_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/TaskQueue_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -47,7 +47,7 @@
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Task_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Task_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -64,7 +64,7 @@
 <a name="l00044"></a>00044 
 <a name="l00045"></a>00045 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/TextureHash_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/TextureHash_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -40,7 +40,7 @@
 <a name="l00020"></a>00020 
 <a name="l00021"></a>00021 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/Venus_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/Venus_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -29,7 +29,7 @@
 <a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define Venus005 scene_graph-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next</span>
 <a name="l00010"></a>00010 <span class="preprocessor"></span><span class="preprocessor">#define Venus009 scene_graph-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/annotated.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/annotated.html	Fri Jun 05 18:16:31 2009 +0900
@@ -16,17 +16,19 @@
   <div class="tabs">
     <ul>
       <li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
       <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
     </ul>
   </div>
 </div>
 <div class="contents">
 <h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
+  <tr><td class="indexkey"><a class="el" href="classBufferManager.html">BufferManager</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="structtexture__block.html">texture_block</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><a class="el" href="classTileList.html">TileList</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/base_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/base_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -44,7 +44,7 @@
 <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
 <a name="l00025"></a>00025 <span class="preprocessor"></span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:05 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/blast_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/blast_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -27,7 +27,7 @@
 <a name="l00007"></a>00007 <span class="preprocessor"></span><span class="preprocessor">#define BLAST2 scene_graph-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next</span>
 <a name="l00008"></a>00008 <span class="preprocessor"></span><span class="preprocessor">#define BLAST1 scene_graph-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next-&gt;next</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/boss1_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/boss1_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -22,7 +22,7 @@
 <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define BOSS1_L scene_graph-&gt;next</span>
 <a name="l00003"></a>00003 <span class="preprocessor"></span><span class="preprocessor">#define BOSS1_R scene_graph-&gt;next-&gt;next</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/boss1__action_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/boss1__action_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -80,7 +80,7 @@
 <a name="l00060"></a>00060 <span class="keyword">static</span> <span class="keywordtype">void</span>
 <a name="l00061"></a>00061 blast_move(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/bullet__action_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/bullet__action_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -22,7 +22,7 @@
 <a name="l00002"></a>00002 <span class="keywordtype">void</span> bluebullet_move(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h);
 <a name="l00003"></a>00003 <span class="keywordtype">void</span> bullet_collision(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h ,SceneGraphPtr tree);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/camera__action_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/camera__action_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -22,7 +22,7 @@
 <a name="l00002"></a>00002 <span class="keywordtype">void</span> c_movet(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h);
 <a name="l00003"></a>00003 <span class="keywordtype">void</span> camera_collision(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h, SceneGraphPtr tree);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/classBufferManager-members.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: Member List</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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>BufferManager Member List</h1>This is the complete list of members for <a class="el" href="classBufferManager.html">BufferManager</a>, including all inherited members.<p><table>
+  <tr bgcolor="#f0f0f0"><td><b>BufferManager</b>(int num=1) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>clear_taskList</b>(TaskListPtr) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>create_task</b>(int cmd) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>create_taskList</b>(void) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>create_taskQueue</b>(HTaskPtr) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>finish</b>(void) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>free_task</b>(HTaskPtr) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>free_taskList</b>(TaskListPtr) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>free_taskQueue</b>(TaskQueuePtr) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>htaskImpl</b> (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>init</b>(void) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td><code> [virtual]</code></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>machineNum</b> (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>taskListImpl</b> (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>taskQueueImpl</b> (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td></td></tr>
+  <tr bgcolor="#f0f0f0"><td><b>~BufferManager</b>(void) (defined in <a class="el" href="classBufferManager.html">BufferManager</a>)</td><td><a class="el" href="classBufferManager.html">BufferManager</a></td><td><code> [virtual]</code></td></tr>
+</table></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/classBufferManager.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,88 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: BufferManager Class 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>BufferManager Class Reference</h1><!-- doxytag: class="BufferManager" --><code>#include &lt;<a class="el" href="BufferManager_8h-source.html">BufferManager.h</a>&gt;</code>
+<p>
+Inherited by CellBufferManager.
+<p>
+
+<p>
+<a href="classBufferManager-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9f6520c0cb5b2546fa5c0a0357c75c9f"></a><!-- doxytag: member="BufferManager::BufferManager" ref="9f6520c0cb5b2546fa5c0a0357c75c9f" args="(int num=1)" -->
+&nbsp;</td><td class="memItemRight" valign="bottom"><b>BufferManager</b> (int num=1)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1795106aa9914c8089d6ea2c8e171a5d"></a><!-- doxytag: member="BufferManager::init" ref="1795106aa9914c8089d6ea2c8e171a5d" args="(void)" -->
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>init</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9dd8ede25545cff6ab9e1bb6936967d1"></a><!-- doxytag: member="BufferManager::create_taskList" ref="9dd8ede25545cff6ab9e1bb6936967d1" args="(void)" -->
+TaskListPtr&nbsp;</td><td class="memItemRight" valign="bottom"><b>create_taskList</b> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="38d9adc627d38c5aad0d9b36062df029"></a><!-- doxytag: member="BufferManager::free_taskList" ref="38d9adc627d38c5aad0d9b36062df029" args="(TaskListPtr)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>free_taskList</b> (TaskListPtr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a83740aaeb16b56dbb944d5549e7dfb1"></a><!-- doxytag: member="BufferManager::clear_taskList" ref="a83740aaeb16b56dbb944d5549e7dfb1" args="(TaskListPtr)" -->
+TaskListPtr&nbsp;</td><td class="memItemRight" valign="bottom"><b>clear_taskList</b> (TaskListPtr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="020b8ed41ae771ab4a80e0ac36cbd439"></a><!-- doxytag: member="BufferManager::create_taskQueue" ref="020b8ed41ae771ab4a80e0ac36cbd439" args="(HTaskPtr)" -->
+TaskQueuePtr&nbsp;</td><td class="memItemRight" valign="bottom"><b>create_taskQueue</b> (HTaskPtr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1c978e7795a045a278f1e9277756d0dd"></a><!-- doxytag: member="BufferManager::free_taskQueue" ref="1c978e7795a045a278f1e9277756d0dd" args="(TaskQueuePtr)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>free_taskQueue</b> (TaskQueuePtr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="91144fbb6e48dd52792073d8e41795a6"></a><!-- doxytag: member="BufferManager::create_task" ref="91144fbb6e48dd52792073d8e41795a6" args="(int cmd)" -->
+HTaskPtr&nbsp;</td><td class="memItemRight" valign="bottom"><b>create_task</b> (int cmd)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0254144c5bc89574d57073a5b4443004"></a><!-- doxytag: member="BufferManager::free_task" ref="0254144c5bc89574d57073a5b4443004" args="(HTaskPtr)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>free_task</b> (HTaskPtr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0e90929562369d98573b1dc1d97506e7"></a><!-- doxytag: member="BufferManager::finish" ref="0e90929562369d98573b1dc1d97506e7" args="(void)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><b>finish</b> (void)</td></tr>
+
+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d2b213a2bece5dcd3441d3270937cd0b"></a><!-- doxytag: member="BufferManager::taskListImpl" ref="d2b213a2bece5dcd3441d3270937cd0b" args="" -->
+TaskListInfo *&nbsp;</td><td class="memItemRight" valign="bottom"><b>taskListImpl</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7df679af7bea986434fc60ce81c3bd6b"></a><!-- doxytag: member="BufferManager::taskQueueImpl" ref="7df679af7bea986434fc60ce81c3bd6b" args="" -->
+TaskQueueInfo *&nbsp;</td><td class="memItemRight" valign="bottom"><b>taskQueueImpl</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="046658d075870d6c14c4ccb8d91f71b8"></a><!-- doxytag: member="BufferManager::htaskImpl" ref="046658d075870d6c14c4ccb8d91f71b8" args="" -->
+HTaskInfo *&nbsp;</td><td class="memItemRight" valign="bottom"><b>htaskImpl</b></td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7df9fcae63365f7b0217726a72ce258a"></a><!-- doxytag: member="BufferManager::machineNum" ref="7df9fcae63365f7b0217726a72ce258a" args="" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><b>machineNum</b></td></tr>
+
+</table>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Task Input/Output buffer manager 
+<p>Definition at line <a class="el" href="BufferManager_8h-source.html#l00025">25</a> of file <a class="el" href="BufferManager_8h-source.html">BufferManager.h</a>.</p>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="BufferManager_8h-source.html">BufferManager.h</a><li><a class="el" href="BufferManager_8cc-source.html">BufferManager.cc</a></ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/classTileList-members.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/classTileList-members.html	Fri Jun 05 18:16:31 2009 +0900
@@ -16,6 +16,7 @@
   <div class="tabs">
     <ul>
       <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
       <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
     </ul>
   </div>
@@ -29,7 +30,7 @@
   <tr bgcolor="#f0f0f0"><td><b>tile</b> (defined in <a class="el" href="classTileList.html">TileList</a>)</td><td><a class="el" href="classTileList.html">TileList</a></td><td></td></tr>
   <tr bgcolor="#f0f0f0"><td><b>TileList</b>(void) (defined in <a class="el" href="classTileList.html">TileList</a>)</td><td><a class="el" href="classTileList.html">TileList</a></td><td><code> [inline]</code></td></tr>
 </table></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/classTileList.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/classTileList.html	Fri Jun 05 18:16:31 2009 +0900
@@ -16,6 +16,7 @@
   <div class="tabs">
     <ul>
       <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
       <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
     </ul>
   </div>
@@ -44,7 +45,9 @@
 
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
-<a class="el" href="classTileList.html">TileList</a> 中の Tile の追い出しは、現在 FIFO で実装している <hr><h2>Member Function Documentation</h2>
+<a class="el" href="classTileList.html">TileList</a> 中の Tile の追い出しは、現在 FIFO で実装している 
+<p>Definition at line <a class="el" href="Tapestry_8h-source.html#l00088">88</a> of file <a class="el" href="Tapestry_8h-source.html">Tapestry.h</a>.</p>
+<hr><h2>Member Function Documentation</h2>
 <a class="anchor" name="81f144e0c87ba9a92c8e4a10990caeb5"></a><!-- doxytag: member="TileList::clear" ref="81f144e0c87ba9a92c8e4a10990caeb5" args="(void)" -->
 <div class="memitem">
 <div class="memproto">
@@ -63,6 +66,8 @@
 
 <p>
 <a class="el" href="classTileList.html">TileList</a> のクリア //tile 自体は clear する必要は無い あるかもしれない 
+<p>Definition at line <a class="el" href="Tapestry_8h-source.html#l00117">117</a> of file <a class="el" href="Tapestry_8h-source.html">Tapestry.h</a>.</p>
+
 </div>
 </div><p>
 <a class="anchor" name="e74c2d4e781fdde223961c00d75a791c"></a><!-- doxytag: member="TileList::nextTile" ref="e74c2d4e781fdde223961c00d75a791c" args="(void)" -->
@@ -85,12 +90,14 @@
 次に扱う tile を取得する<p>
 <dl class="return" compact><dt><b>Returns:</b></dt><dd>tile</dd></dl>
 tile[] をリングバスっぽく扱うことで FIFO を実現することに。 
+<p>Definition at line <a class="el" href="Tapestry_8h-source.html#l00106">106</a> of file <a class="el" href="Tapestry_8h-source.html">Tapestry.h</a>.</p>
+
 </div>
 </div><p>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="Tapestry_8h-source.html">Tapestry.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/classes.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/classes.html	Fri Jun 05 18:16:31 2009 +0900
@@ -16,17 +16,19 @@
   <div class="tabs">
     <ul>
       <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
       <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
     </ul>
   </div>
 </div>
 <div class="contents">
-<h1>Class Index</h1><p><div class="qindex"><a class="qindex" href="#letter_T">T</a></div><p>
+<h1>Class Index</h1><p><div class="qindex"><a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div><p>
 <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
-<tr><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
-</td><td><a class="el" href="structtexture__block.html">texture_block</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classTileList.html">TileList</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_T">T</a></div><p>
+<tr><td><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;B&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="classBufferManager.html">BufferManager</a>&nbsp;&nbsp;&nbsp;</td><td><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;T&nbsp;&nbsp;</div></td></tr></table>
+</td><td><a class="el" href="structtexture__block.html">texture_block</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="classTileList.html">TileList</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_B">B</a>&nbsp;|&nbsp;<a class="qindex" href="#letter_T">T</a></div><p>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/cube__split_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/cube__split_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -21,7 +21,7 @@
 <h1>cube_split.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define Plane scene_graph</span>
 <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define SmallCube scene_graph-&gt;next</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/direction_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/direction_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -22,7 +22,7 @@
 <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define Dirx.001 scene_graph-&gt;next</span>
 <a name="l00003"></a>00003 <span class="preprocessor"></span><span class="preprocessor">#define Dirx scene_graph-&gt;next-&gt;next</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/enemy__action_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/enemy__action_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -21,7 +21,7 @@
 <h1>enemy_action.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="keyword">extern</span> <span class="keywordtype">void</span> enemy_move(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h);
 <a name="l00002"></a>00002 <span class="keyword">extern</span> <span class="keywordtype">void</span> enemy_collision(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h, SceneGraphPtr tree);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/error_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/error_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -46,7 +46,7 @@
 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
 <a name="l00027"></a>00027 <span class="preprocessor"></span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/files.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/files.html	Fri Jun 05 18:16:31 2009 +0900
@@ -26,17 +26,24 @@
   <tr><td class="indexkey"><b>blast.h</b> <a href="blast_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>boss1.h</b> <a href="boss1_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>boss1_action.h</b> <a href="boss1__action_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>BufferManager.cc</b> <a href="BufferManager_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>BufferManager.h</b> <a href="BufferManager_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>bullet_action.h</b> <a href="bullet__action_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>Button.h</b> <a href="Button_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>Camera.h</b> <a href="Camera_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>camera_action.h</b> <a href="camera__action_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>CellBufferManager.cc</b> <a href="CellBufferManager_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>CellBufferManager.h</b> <a href="CellBufferManager_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>CellDmaManager.cc</b> <a href="CellDmaManager_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>CellDmaManager.h</b> <a href="CellDmaManager_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>CellHTaskInfo.cc</b> <a href="CellHTaskInfo_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>CellHTaskInfo.h</b> <a href="CellHTaskInfo_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>CellScheduler.cc</b> <a href="CellScheduler_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>CellScheduler.h</b> <a href="CellScheduler_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>CellTaskInfo.h</b> <a href="CellTaskInfo_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>CellTaskListInfo.cc</b> <a href="CellTaskListInfo_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>CellTaskListInfo.h</b> <a href="CellTaskListInfo_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>CellTaskManagerImpl.cc</b> <a href="CellTaskManagerImpl_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>CellTaskManagerImpl.h</b> <a href="CellTaskManagerImpl_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>task/CreatePolygon.h</b> <a href="task_2CreatePolygon_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>spe/CreatePolygon.h</b> <a href="spe_2CreatePolygon_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -54,6 +61,7 @@
   <tr><td class="indexkey"><b>simple_render/demonstration.h</b> <a href="simple__render_2demonstration_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_pack/demonstration.h</b> <a href="simple__pack_2demonstration_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>direction.h</b> <a href="direction_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>DmaBuffer.cc</b> <a href="DmaBuffer_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>DmaBuffer.h</b> <a href="DmaBuffer_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>DmaManager.h</b> <a href="DmaManager_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>task/DrawBack.h</b> <a href="task_2DrawBack_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -66,14 +74,19 @@
   <tr><td class="indexkey"><b>error.h</b> <a href="error_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>test_render/fb.h</b> <a href="test__render_2fb_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_render/fb.h</b> <a href="simple__render_2fb_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>FifoDmaManager.cc</b> <a href="FifoDmaManager_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>FifoDmaManager.h</b> <a href="FifoDmaManager_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>FifoTaskManagerImpl.cc</b> <a href="FifoTaskManagerImpl_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>FifoTaskManagerImpl.h</b> <a href="FifoTaskManagerImpl_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Finish.cc</b> <a href="Finish_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>Finish.h</b> <a href="Finish_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>test_render/Func.h</b> <a href="test__render_2Func_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_render/Func.h</b> <a href="simple__render_2Func_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>hash_texture.h</b> <a href="hash__texture_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>hit_judge.h</b> <a href="hit__judge_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>HTask.cc</b> <a href="HTask_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>HTask.h</b> <a href="HTask_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>HTaskInfo.cc</b> <a href="HTaskInfo_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>HTaskInfo.h</b> <a href="HTaskInfo_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>ieboss.h</b> <a href="ieboss_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>iejiki.h</b> <a href="iejiki_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -86,7 +99,11 @@
   <tr><td class="indexkey"><b>simple_render/test/LoadTexture/spe/Load_Texture.h</b> <a href="simple__render_2test_2LoadTexture_2spe_2Load__Texture_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_render/spe/Load_Texture.h</b> <a href="simple__render_2spe_2Load__Texture_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>LongCube.h</b> <a href="LongCube_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>MailManager.cc</b> <a href="MailManager_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>MailManager.h</b> <a href="MailManager_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/main.cc</b> <a href="kernel_2main_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/main.cc</b> <a href="Cell_2spe_2main_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>MainScheduler.cc</b> <a href="MainScheduler_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>MainScheduler.h</b> <a href="MainScheduler_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>p_shot.h</b> <a href="p__shot_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_render/pad.h</b> <a href="simple__render_2pad_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -104,7 +121,9 @@
   <tr><td class="indexkey"><b>test_render/polygon_pack.h</b> <a href="test__render_2polygon__pack_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_render/polygon_pack.h</b> <a href="simple__render_2polygon__pack_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_pack/polygon_pack.h</b> <a href="simple__pack_2polygon__pack_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>PpeScheduler.cc</b> <a href="PpeScheduler_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>PpeScheduler.h</b> <a href="PpeScheduler_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Random.cc</b> <a href="Random_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>Random.h</b> <a href="Random_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>test_render/scene.h</b> <a href="test__render_2scene_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_render/scene.h</b> <a href="simple__render_2scene_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -116,13 +135,27 @@
   <tr><td class="indexkey"><b>SceneGraphArray.h</b> <a href="SceneGraphArray_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SceneGraphIterator.h</b> <a href="SceneGraphIterator_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SceneGraphRoot.h</b> <a href="SceneGraphRoot_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/schedule/SchedExit.cc</b> <a href="kernel_2schedule_2SchedExit_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/SchedExit.cc</b> <a href="Cell_2spe_2SchedExit_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SchedExit.h</b> <a href="SchedExit_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/schedule/SchedMail.cc</b> <a href="kernel_2schedule_2SchedMail_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/SchedMail.cc</b> <a href="Cell_2spe_2SchedMail_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SchedMail.h</b> <a href="SchedMail_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/schedule/SchedNop.cc</b> <a href="kernel_2schedule_2SchedNop_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/SchedNop.cc</b> <a href="Cell_2spe_2SchedNop_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SchedNop.h</b> <a href="SchedNop_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/schedule/SchedNop2Ready.cc</b> <a href="kernel_2schedule_2SchedNop2Ready_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/SchedNop2Ready.cc</b> <a href="Cell_2spe_2SchedNop2Ready_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SchedNop2Ready.h</b> <a href="SchedNop2Ready_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/schedule/SchedTask.cc</b> <a href="kernel_2schedule_2SchedTask_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/SchedTask.cc</b> <a href="Cell_2spe_2SchedTask_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SchedTask.h</b> <a href="SchedTask_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SchedTaskBase.h</b> <a href="SchedTaskBase_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/schedule/SchedTaskList.cc</b> <a href="kernel_2schedule_2SchedTaskList_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/SchedTaskList.cc</b> <a href="Cell_2spe_2SchedTaskList_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SchedTaskList.h</b> <a href="SchedTaskList_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/schedule/Scheduler.cc</b> <a href="kernel_2schedule_2Scheduler_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/Scheduler.cc</b> <a href="Cell_2spe_2Scheduler_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>Scheduler.h</b> <a href="Scheduler_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>task/Set_Texture.h</b> <a href="task_2Set__Texture_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>spe/Set_Texture.h</b> <a href="spe_2Set__Texture_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -136,26 +169,42 @@
   <tr><td class="indexkey"><b>test_render/SpanPack.h</b> <a href="test__render_2SpanPack_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_render/SpanPack.h</b> <a href="simple__render_2SpanPack_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SpanPackList.h</b> <a href="SpanPackList_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>SpeThreads.cc</b> <a href="SpeThreads_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SpeThreads.h</b> <a href="SpeThreads_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>sphere.h</b> <a href="sphere_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>sphere_big.h</b> <a href="sphere__big_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>spu_span.h</b> <a href="spu__span_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SpuDraw.h</b> <a href="SpuDraw_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SpuSpan.h</b> <a href="SpuSpan_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Start.cc</b> <a href="Start_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>Start.h</b> <a href="Start_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>SymTable.cc</b> <a href="SymTable_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SymTable.h</b> <a href="SymTable_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>test_render/sys.h</b> <a href="test__render_2sys_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_render/sys.h</b> <a href="simple__render_2sys_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>simple_pack/sys.h</b> <a href="simple__pack_2sys_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>SysTask.h</b> <a href="SysTask_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>systask_register.cc</b> <a href="systask__register_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>Tapestry.h</b> <a href="Tapestry_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/ppe/Task.cc</b> <a href="kernel_2ppe_2Task_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/Task.cc</b> <a href="Cell_2spe_2Task_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>Task.h</b> <a href="Task_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/schedule/TaskGroup.cc</b> <a href="kernel_2schedule_2TaskGroup_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/TaskGroup.cc</b> <a href="Cell_2spe_2TaskGroup_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>TaskGroup.h</b> <a href="TaskGroup_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/ppe/TaskList.cc</b> <a href="kernel_2ppe_2TaskList_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/TaskList.cc</b> <a href="Cell_2spe_2TaskList_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>TaskList.h</b> <a href="TaskList_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>TaskListInfo.cc</b> <a href="TaskListInfo_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>TaskListInfo.h</b> <a href="TaskListInfo_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>TaskManager.cc</b> <a href="TaskManager_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>TaskManager.h</b> <a href="TaskManager_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>TaskManagerImpl.cc</b> <a href="TaskManagerImpl_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>TaskManagerImpl.h</b> <a href="TaskManagerImpl_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>kernel/ppe/TaskQueue.cc</b> <a href="kernel_2ppe_2TaskQueue_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>Cell/spe/TaskQueue.cc</b> <a href="Cell_2spe_2TaskQueue_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>TaskQueue.h</b> <a href="TaskQueue_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
+  <tr><td class="indexkey"><b>TaskQueueInfo.cc</b> <a href="TaskQueueInfo_8cc-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>TaskQueueInfo.h</b> <a href="TaskQueueInfo_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>test_render/texture.h</b> <a href="test__render_2texture_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>test_render/task/texture.h</b> <a href="test__render_2task_2texture_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -187,7 +236,7 @@
   <tr><td class="indexkey"><b>simple_pack/xml.h</b> <a href="simple__pack_2xml_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
 </table>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/functions.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/functions.html	Fri Jun 05 18:16:31 2009 +0900
@@ -16,6 +16,7 @@
   <div class="tabs">
     <ul>
       <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
       <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
     </ul>
   </div>
@@ -36,7 +37,7 @@
 : <a class="el" href="classTileList.html#e74c2d4e781fdde223961c00d75a791c">TileList</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/functions_func.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/functions_func.html	Fri Jun 05 18:16:31 2009 +0900
@@ -16,6 +16,7 @@
   <div class="tabs">
     <ul>
       <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
       <li class="current"><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
     </ul>
   </div>
@@ -36,7 +37,7 @@
 : <a class="el" href="classTileList.html#e74c2d4e781fdde223961c00d75a791c">TileList</a>
 </ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/hash__texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/hash__texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -34,7 +34,7 @@
 <a name="l00014"></a>00014     <span class="keywordtype">int</span> hash_regist(<span class="keyword">const</span> <span class="keywordtype">char</span>*);
 <a name="l00015"></a>00015 };
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/hierarchy.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: Hierarchical Index</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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li class="current"><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
+    </ul>
+  </div>
+</div>
+<div class="contents">
+<h1>Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>
+<li><a class="el" href="classBufferManager.html">BufferManager</a>
+<li><a class="el" href="structtexture__block.html">texture_block</a>
+<li><a class="el" href="classTileList.html">TileList</a>
+</ul>
+</div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/hit__judge_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/hit__judge_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -26,7 +26,7 @@
 <a name="l00006"></a>00006 <span class="preprocessor"></span>
 <a name="l00007"></a>00007 <span class="keyword">extern</span> <span class="keywordtype">int</span> square_judge(SceneGraphPtr oneself, SceneGraphPtr partner);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/ieboss_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/ieboss_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>ieboss.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define IEBOSS scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/iejiki_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/iejiki_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>iejiki.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define IEJIKI scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/ietama_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/ietama_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>ietama.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define IETAMA scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/index.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/index.html	Fri Jun 05 18:16:31 2009 +0900
@@ -18,7 +18,7 @@
 <h1>Cerium Documentation</h1>
 <p>
 <h3 align="center">0.1 </h3></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:05 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2main_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: main.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>main.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include &lt;SDL.h&gt;</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "TaskManager.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00010"></a>00010 <span class="comment">/* User main function */</span>
+<a name="l00011"></a>00011 <span class="keyword">extern</span> <span class="keywordtype">int</span> TMmain(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[]);
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013 <span class="comment">/* Default TMend function */</span>
+<a name="l00014"></a>00014 <span class="keyword">static</span> <span class="keywordtype">void</span>
+<a name="l00015"></a>00015 defaultTMend(<span class="keywordtype">void</span>) {}
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017 TaskManager *manager;
+<a name="l00018"></a>00018 
+<a name="l00023"></a>00023 <span class="keyword">const</span> <span class="keywordtype">char</span> *help_str = <span class="stringliteral">"\n\</span>
+<a name="l00024"></a>00024 <span class="stringliteral">* Cerium program option *\n\</span>
+<a name="l00025"></a>00025 <span class="stringliteral">  -help Print this message \n\</span>
+<a name="l00026"></a>00026 <span class="stringliteral">  -cpu   Number of CPU (default 1) \n"</span>;
+<a name="l00027"></a>00027 
+<a name="l00028"></a>00028 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *usr_help_str;
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030 <span class="keywordtype">int</span>
+<a name="l00031"></a>00031 main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])
+<a name="l00032"></a>00032 {
+<a name="l00033"></a>00033     <span class="keywordtype">int</span> machineNum = 1;
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; argv[i]; ++i) {
+<a name="l00036"></a>00036         <span class="keywordflow">if</span> (strcmp(argv[i], <span class="stringliteral">"-cpu"</span>) == 0) {
+<a name="l00037"></a>00037             machineNum = atoi(argv[++i]);
+<a name="l00038"></a>00038         }
+<a name="l00039"></a>00039         <span class="keywordflow">if</span> (strcmp(argv[i], <span class="stringliteral">"-help"</span>) == 0) {
+<a name="l00040"></a>00040             <span class="keywordflow">if</span> (usr_help_str) {
+<a name="l00041"></a>00041                 printf(<span class="stringliteral">"%s"</span>, usr_help_str);
+<a name="l00042"></a>00042             }
+<a name="l00043"></a>00043             printf(<span class="stringliteral">"%s"</span>, help_str);         
+<a name="l00044"></a>00044             <span class="keywordflow">return</span> EXIT_SUCCESS;
+<a name="l00045"></a>00045         }
+<a name="l00046"></a>00046     }
+<a name="l00047"></a>00047 
+<a name="l00048"></a>00048     manager = <span class="keyword">new</span> TaskManager(machineNum);
+<a name="l00049"></a>00049     manager-&gt;init();
+<a name="l00050"></a>00050 
+<a name="l00051"></a>00051     manager-&gt;set_TMend(defaultTMend);
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053     <span class="keywordflow">if</span> (TMmain(argc, argv) &lt; 0) {
+<a name="l00054"></a>00054         <span class="keywordflow">goto</span> FINISH;
+<a name="l00055"></a>00055     }
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057     manager-&gt;run();
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059     (manager-&gt;tm_end)();
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061 FINISH:
+<a name="l00062"></a>00062     <span class="keyword">delete</span> manager;
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064     <span class="keywordflow">return</span> EXIT_SUCCESS;
+<a name="l00065"></a>00065 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2ppe_2TaskList_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskList.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskList.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "TaskList.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 TaskListPtr
+<a name="l00004"></a>00004 TaskList::append(TaskListPtr list, TaskListPtr q)
+<a name="l00005"></a>00005 {
+<a name="l00006"></a>00006     TaskListPtr p = list;
+<a name="l00007"></a>00007 
+<a name="l00008"></a>00008     <span class="keywordflow">if</span> (!p) {
+<a name="l00009"></a>00009         <span class="keywordflow">return</span> q;
+<a name="l00010"></a>00010     } <span class="keywordflow">else</span> {
+<a name="l00011"></a>00011         <span class="keywordflow">while</span> (p-&gt;next) p = p-&gt;next;
+<a name="l00012"></a>00012         p-&gt;next = q;
+<a name="l00013"></a>00013         <span class="keywordflow">return</span> list;
+<a name="l00014"></a>00014     }
+<a name="l00015"></a>00015 }
+<a name="l00016"></a>00016 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2ppe_2TaskQueue_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskQueue.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskQueue.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "TaskQueue.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 TaskQueue::TaskQueue(TaskPtr q)
+<a name="l00004"></a>00004 {
+<a name="l00005"></a>00005     task = q;
+<a name="l00006"></a>00006     next = NULL;
+<a name="l00007"></a>00007 }
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 TaskQueuePtr
+<a name="l00010"></a>00010 TaskQueue::append(TaskQueuePtr list, TaskQueuePtr q)
+<a name="l00011"></a>00011 {
+<a name="l00012"></a>00012     TaskQueuePtr p = list;
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014     <span class="keywordflow">if</span> (!p) {
+<a name="l00015"></a>00015         <span class="keywordflow">return</span> q;
+<a name="l00016"></a>00016     } <span class="keywordflow">else</span> {
+<a name="l00017"></a>00017         <span class="keywordflow">while</span>(p-&gt;next) p = p-&gt;next;
+<a name="l00018"></a>00018         p-&gt;next = q;
+<a name="l00019"></a>00019         <span class="keywordflow">return</span> list;
+<a name="l00020"></a>00020     }
+<a name="l00021"></a>00021 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2ppe_2Task_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: Task.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>Task.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "Task.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00011"></a>00011 <span class="keywordtype">int</span>
+<a name="l00012"></a>00012 Task::add_inData_t(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> addr, <span class="keywordtype">int</span> size)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014     <span class="keywordflow">return</span> add_data(this-&gt;inData, addr, size);
+<a name="l00015"></a>00015 }
+<a name="l00016"></a>00016 
+<a name="l00025"></a>00025 <span class="keywordtype">int</span>
+<a name="l00026"></a>00026 Task::add_outData_t(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> addr, <span class="keywordtype">int</span> size)
+<a name="l00027"></a>00027 {
+<a name="l00028"></a>00028     <span class="keywordflow">return</span> add_data(this-&gt;outData, addr, size);
+<a name="l00029"></a>00029 }
+<a name="l00030"></a>00030 
+<a name="l00035"></a>00035 <span class="keywordtype">int</span>
+<a name="l00036"></a>00036 Task::add_param(<span class="keywordtype">int</span> _param)
+<a name="l00037"></a>00037 {
+<a name="l00038"></a>00038     <span class="keywordflow">if</span> (param_size &gt;= MAX_PARAMS) <span class="keywordflow">return</span> -1;
+<a name="l00039"></a>00039     
+<a name="l00040"></a>00040     this-&gt;param[param_size++] = _param;
+<a name="l00041"></a>00041     <span class="keywordflow">return</span> 0;
+<a name="l00042"></a>00042 }
+<a name="l00043"></a>00043 
+<a name="l00044"></a>00044 <span class="comment">/*</span>
+<a name="l00045"></a>00045 <span class="comment"> * 顼λ -1 ֤äƤȤ</span>
+<a name="l00046"></a>00046 <span class="comment"> * perror ߤˤۤ狼䤹ʡ</span>
+<a name="l00047"></a>00047 <span class="comment"> */</span>
+<a name="l00048"></a>00048 <span class="keywordtype">int</span>
+<a name="l00049"></a>00049 Task::add_data(ListDataPtr list, uint32 addr, <span class="keywordtype">int</span> size)
+<a name="l00050"></a>00050 {
+<a name="l00051"></a>00051     <span class="keywordflow">if</span> (list-&gt;length &gt;= MAX_LIST_DMA_SIZE) <span class="keywordflow">return</span> -1;
+<a name="l00052"></a>00052 
+<a name="l00053"></a>00053     list-&gt;bound[list-&gt;length] = list-&gt;size;
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     <span class="comment">// size Ǥ¤٤</span>
+<a name="l00056"></a>00056     list-&gt;size += size;
+<a name="l00057"></a>00057 
+<a name="l00058"></a>00058     ListElementPtr elm = &amp;list-&gt;element[list-&gt;length++];
+<a name="l00059"></a>00059     elm-&gt;addr = addr;
+<a name="l00060"></a>00060     elm-&gt;size = size;
+<a name="l00061"></a>00061 
+<a name="l00062"></a>00062     <span class="keywordflow">return</span> 0;
+<a name="l00063"></a>00063 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2schedule_2SchedExit_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedExit.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedExit.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SchedExit.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "error.h"</span>
+<a name="l00004"></a>00004 
+<a name="l00005"></a>00005 SchedTaskBase*
+<a name="l00006"></a>00006 SchedExit::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008     <span class="keyword">delete</span> p;
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010     __debug(<span class="stringliteral">"SchedExit::next()\n"</span>);
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012     <span class="keywordflow">return</span> NULL;
+<a name="l00013"></a>00013 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2schedule_2SchedMail_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedMail.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedMail.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "SchedMail.h"</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SchedTaskList.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedExit.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "error.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 SchedMail::SchedMail(Scheduler *sched)
+<a name="l00007"></a>00007 {
+<a name="l00008"></a>00008     scheduler = sched;
+<a name="l00009"></a>00009 }
+<a name="l00010"></a>00010 
+<a name="l00011"></a>00011 SchedTaskBase*
+<a name="l00012"></a>00012 SchedMail::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00013"></a>00013 {
+<a name="l00014"></a>00014     <span class="keyword">delete</span> p;
+<a name="l00015"></a>00015     
+<a name="l00016"></a>00016     params_addr = scheduler-&gt;mail_read();
+<a name="l00017"></a>00017 
+<a name="l00018"></a>00018     __debug(<span class="stringliteral">"[SchedMail:%s]\n"</span>, __FUNCTION__);
+<a name="l00019"></a>00019     <span class="comment">// if ʸʤˤϡؿݥ󥿡</span>
+<a name="l00020"></a>00020     <span class="keywordflow">if</span> ((<span class="keywordtype">int</span>)params_addr == MY_SPE_COMMAND_EXIT) {
+<a name="l00021"></a>00021         <span class="keywordflow">return</span> <span class="keyword">new</span> SchedExit();
+<a name="l00022"></a>00022     } <span class="keywordflow">else</span> {
+<a name="l00023"></a>00023         <span class="keywordflow">return</span> <span class="keyword">new</span> SchedTaskList(params_addr, m);
+<a name="l00024"></a>00024     }
+<a name="l00025"></a>00025 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2schedule_2SchedNop2Ready_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedNop2Ready.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedNop2Ready.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SchedNop2Ready.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedTaskList.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "SchedMail.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "error.h"</span>
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 SchedNop2Ready::SchedNop2Ready(Scheduler *cn)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     scheduler = cn;
+<a name="l00010"></a>00010 }
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 <span class="keywordtype">void</span>
+<a name="l00013"></a>00013 SchedNop2Ready::exec(<span class="keywordtype">void</span>)
+<a name="l00014"></a>00014 {
+<a name="l00015"></a>00015     __debug(<span class="stringliteral">"[SchedNop2Ready:%s]\n"</span>, __FUNCTION__);
+<a name="l00016"></a>00016 
+<a name="l00017"></a>00017     <span class="comment">//scheduler-&gt;mail_write(MY_SPE_STATUS_READY);</span>
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 SchedTaskBase*
+<a name="l00021"></a>00021 SchedNop2Ready::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00022"></a>00022 {
+<a name="l00023"></a>00023     SchedTaskBase *nextSched;
+<a name="l00024"></a>00024 
+<a name="l00025"></a>00025     __debug(<span class="stringliteral">"[SchedNop2Ready:%s]\n"</span>, __FUNCTION__);
+<a name="l00026"></a>00026     
+<a name="l00027"></a>00027     <span class="keyword">delete</span> p;
+<a name="l00028"></a>00028 
+<a name="l00029"></a>00029     nextSched = scheduler-&gt;get_nextRenewTaskList();
+<a name="l00030"></a>00030         
+<a name="l00031"></a>00031     <span class="comment">// RenewTask </span>
+<a name="l00032"></a>00032     <span class="keywordflow">if</span> (nextSched) {
+<a name="l00033"></a>00033         <span class="keywordflow">return</span> nextSched;
+<a name="l00034"></a>00034     } <span class="keywordflow">else</span> {
+<a name="l00035"></a>00035         scheduler-&gt;mail_write(MY_SPE_STATUS_READY);
+<a name="l00036"></a>00036         <span class="keywordflow">return</span> <span class="keyword">new</span> SchedMail(scheduler);
+<a name="l00037"></a>00037     }
+<a name="l00038"></a>00038 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2schedule_2SchedNop_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedNop.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedNop.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include "SchedNop.h"</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedMail.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "error.h"</span>
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 SchedTaskBase*
+<a name="l00007"></a>00007 SchedNop::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     __debug(<span class="stringliteral">"SchedNop::next()"</span>);
+<a name="l00010"></a>00010     
+<a name="l00011"></a>00011     <span class="keyword">delete</span> p;
+<a name="l00012"></a>00012 
+<a name="l00013"></a>00013     <span class="keywordflow">return</span> <span class="keyword">new</span> SchedMail(m);
+<a name="l00014"></a>00014 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2schedule_2SchedTaskList_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,101 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedTaskList.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedTaskList.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedTaskList.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "SchedTask.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "SchedNop2Ready.h"</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include "DmaManager.h"</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include "error.h"</span>
+<a name="l00008"></a>00008 
+<a name="l00018"></a>00018 SchedTaskList*
+<a name="l00019"></a>00019 createSchedTaskList(uint32 next_list, Scheduler* scheduler, <span class="keywordtype">int</span> renew_flag)
+<a name="l00020"></a>00020 {
+<a name="l00021"></a>00021     SchedTaskList* sched = <span class="keyword">new</span> SchedTaskList(next_list, scheduler);
+<a name="l00022"></a>00022     sched-&gt;flag_renewTaskList = renew_flag;
+<a name="l00023"></a>00023     <span class="keywordflow">return</span> sched;
+<a name="l00024"></a>00024 }
+<a name="l00025"></a>00025 
+<a name="l00026"></a>00026 SchedTaskList::SchedTaskList(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> addr, Scheduler *sched)
+<a name="l00027"></a>00027 {
+<a name="l00028"></a>00028     params_addr = addr;
+<a name="l00029"></a>00029     list = NULL;
+<a name="l00030"></a>00030     scheduler = sched;
+<a name="l00031"></a>00031 
+<a name="l00032"></a>00032     flag_renewTaskList = 0;
+<a name="l00033"></a>00033 }
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035 
+<a name="l00036"></a>00036 <span class="keywordtype">void</span>
+<a name="l00037"></a>00037 SchedTaskList::read(<span class="keywordtype">void</span>)
+<a name="l00038"></a>00038 {
+<a name="l00039"></a>00039     __debug(<span class="stringliteral">"[SchedTaskList:%s]\n"</span>, __FUNCTION__);
+<a name="l00040"></a>00040 
+<a name="l00041"></a>00041     <span class="keywordflow">if</span> (flag_renewTaskList == SCHED_TASKLIST_NORMAL) {
+<a name="l00042"></a>00042         list = scheduler-&gt;get_curListBuf();
+<a name="l00043"></a>00043         scheduler-&gt;dma_load(list, params_addr,
+<a name="l00044"></a>00044                             <span class="keyword">sizeof</span>(TaskList), DMA_READ_TASKLIST);
+<a name="l00045"></a>00045     } <span class="keywordflow">else</span> {
+<a name="l00046"></a>00046         list = (TaskListPtr)params_addr;
+<a name="l00047"></a>00047     }
+<a name="l00048"></a>00048 }
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050 SchedTaskBase*
+<a name="l00051"></a>00051 SchedTaskList::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00052"></a>00052 {
+<a name="l00053"></a>00053     SchedTaskBase *nextSched;
+<a name="l00054"></a>00054 
+<a name="l00055"></a>00055     __debug(<span class="stringliteral">"[SchedTaskList:%s]\n"</span>, __FUNCTION__);
+<a name="l00056"></a>00056 
+<a name="l00057"></a>00057     <span class="keyword">delete</span> p;
+<a name="l00058"></a>00058 
+<a name="l00059"></a>00059     scheduler-&gt;dma_wait(DMA_READ_TASKLIST);
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061     <span class="keywordflow">if</span> (list-&gt;length &lt; 1) {
+<a name="l00062"></a>00062         nextSched = <span class="keyword">new</span> SchedNop2Ready(scheduler);
+<a name="l00063"></a>00063 
+<a name="l00064"></a>00064         <span class="keywordflow">if</span> (flag_renewTaskList == SCHED_TASKLIST_RENEW) {
+<a name="l00065"></a>00065             free(list);
+<a name="l00066"></a>00066         }
+<a name="l00067"></a>00067 
+<a name="l00068"></a>00068     } <span class="keywordflow">else</span> {
+<a name="l00069"></a>00069         TaskPtr nextTask = &amp;list-&gt;tasks[0];
+<a name="l00070"></a>00070         nextSched = createSchedTask(nextTask);
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072         <span class="keywordflow">if</span> (flag_renewTaskList == SCHED_TASKLIST_RENEW) {
+<a name="l00073"></a>00073             ((SchedTask*)nextSched)-&gt;__setRenew();
+<a name="l00074"></a>00074         }
+<a name="l00075"></a>00075         
+<a name="l00076"></a>00076         ((SchedTask*)nextSched)-&gt;__init__(list, nextTask, 1,
+<a name="l00077"></a>00077                                           scheduler-&gt;get_curReadBuf(),
+<a name="l00078"></a>00078                                           scheduler-&gt;get_curWriteBuf(),
+<a name="l00079"></a>00079                                           scheduler);
+<a name="l00080"></a>00080     }
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082     <span class="keywordflow">return</span> nextSched;
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2schedule_2SchedTask_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,480 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: SchedTask.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>SchedTask.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;string.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "SchedTask.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "SchedTaskList.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "SchedNop2Ready.h"</span>
+<a name="l00006"></a>00006 <span class="preprocessor">#include "DmaManager.h"</span>
+<a name="l00007"></a>00007 <span class="preprocessor">#include "error.h"</span>
+<a name="l00008"></a>00008 <span class="preprocessor">#include "TaskManager.h"</span>
+<a name="l00009"></a>00009 
+<a name="l00010"></a>00010 <span class="keyword">extern</span> Scheduler::TaskObject task_list[MAX_TASK_OBJECT];
+<a name="l00011"></a>00011 
+<a name="l00012"></a>00012 <span class="comment">//#define NO_PIPELINE </span>
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 SchedTask*
+<a name="l00015"></a>00015 createSchedTask(TaskPtr task)
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017     <span class="keywordflow">return</span> task_list[task-&gt;command]();
+<a name="l00018"></a>00018 }
+<a name="l00019"></a>00019 
+<a name="l00020"></a>00020 SchedTask::SchedTask(<span class="keywordtype">void</span>)
+<a name="l00021"></a>00021 {
+<a name="l00022"></a>00022     __list        = NULL;
+<a name="l00023"></a>00023     __task        = NULL;
+<a name="l00024"></a>00024     __inListData  = NULL;
+<a name="l00025"></a>00025     __outListData = NULL;
+<a name="l00026"></a>00026     __readbuf     = NULL;
+<a name="l00027"></a>00027     __writebuf    = NULL;
+<a name="l00028"></a>00028     __scheduler   = NULL;
+<a name="l00029"></a>00029     __taskGroup   = NULL;
+<a name="l00030"></a>00030     __renew_flag  = 0;
+<a name="l00031"></a>00031     __cur_index   = 0;
+<a name="l00032"></a>00032     __flag_renewTask = SCHED_TASK_NORMAL;
+<a name="l00033"></a>00033     
+<a name="l00034"></a>00034     ex_init  = &amp;SchedTask::ex_init_normal;
+<a name="l00035"></a>00035     ex_read  = &amp;SchedTask::ex_read_normal;
+<a name="l00036"></a>00036     ex_exec  = &amp;SchedTask::ex_exec_normal;
+<a name="l00037"></a>00037     ex_write = &amp;SchedTask::ex_write_normal;
+<a name="l00038"></a>00038     ex_next  = &amp;SchedTask::ex_next_normal;
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     run_func = &amp;SchedTask::run;
+<a name="l00041"></a>00041 }
+<a name="l00042"></a>00042 
+<a name="l00050"></a>00050 SchedTask::~SchedTask(<span class="keywordtype">void</span>)
+<a name="l00051"></a>00051 {
+<a name="l00052"></a>00052     <span class="keywordflow">if</span> (__flag_renewTask == SCHED_TASK_RENEW) {
+<a name="l00053"></a>00053         free(__inListData);
+<a name="l00054"></a>00054         free(__outListData);
+<a name="l00055"></a>00055  
+<a name="l00064"></a>00064         free(__list);
+<a name="l00065"></a>00065     }
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067     <span class="keyword">delete</span> smanager;
+<a name="l00068"></a>00068 }
+<a name="l00069"></a>00069 
+<a name="l00073"></a>00073 <span class="keywordtype">void</span>
+<a name="l00074"></a>00074 SchedTask::__setRenew(<span class="keywordtype">void</span>)
+<a name="l00075"></a>00075 {
+<a name="l00076"></a>00076     __flag_renewTask = SCHED_TASK_RENEW;
+<a name="l00077"></a>00077 
+<a name="l00078"></a>00078     ex_init   = &amp;SchedTask::ex_init_renew;
+<a name="l00079"></a>00079     ex_read   = &amp;SchedTask::ex_read_renew;
+<a name="l00080"></a>00080     ex_exec   = &amp;SchedTask::ex_exec_renew;
+<a name="l00081"></a>00081     ex_write  = &amp;SchedTask::ex_write_renew; 
+<a name="l00082"></a>00082     ex_next   = &amp;SchedTask::ex_next_renew;
+<a name="l00083"></a>00083 }
+<a name="l00084"></a>00084 
+<a name="l00085"></a>00085 <span class="keywordtype">void</span>
+<a name="l00086"></a>00086 SchedTask::__init__(TaskListPtr _list, TaskPtr _task, <span class="keywordtype">int</span> index,
+<a name="l00087"></a>00087                     ListDataPtr rbuf, ListDataPtr wbuf, Scheduler* sc)
+<a name="l00088"></a>00088 {
+<a name="l00089"></a>00089     __list        = _list;
+<a name="l00090"></a>00090     __task        = _task;
+<a name="l00091"></a>00091     __inListData  = rbuf;
+<a name="l00092"></a>00092     __outListData = wbuf;
+<a name="l00093"></a>00093     __scheduler   = sc;
+<a name="l00094"></a>00094     __cur_index   = index;
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096     smanager = <span class="keyword">new</span> STaskManager(<span class="keyword">this</span>);
+<a name="l00097"></a>00097 
+<a name="l00098"></a>00098     __scheduler-&gt;mainMem_wait();
+<a name="l00099"></a>00099 
+<a name="l00100"></a>00100     (this-&gt;*ex_init)();
+<a name="l00101"></a>00101 }
+<a name="l00102"></a>00102 
+<a name="l00106"></a>00106 <span class="keywordtype">void</span>
+<a name="l00107"></a>00107 SchedTask::ex_init_normal(<span class="keywordtype">void</span>)
+<a name="l00108"></a>00108 {
+<a name="l00109"></a>00109     __scheduler-&gt;dma_load(__inListData, (uint32)__task-&gt;inData,
+<a name="l00110"></a>00110                           <span class="keyword">sizeof</span>(ListData), DMA_READ_IN_LIST);
+<a name="l00111"></a>00111     __scheduler-&gt;dma_load(__outListData, (uint32)__task-&gt;outData,
+<a name="l00112"></a>00112                           <span class="keyword">sizeof</span>(ListData), DMA_READ_OUT_LIST);
+<a name="l00113"></a>00113 <span class="preprocessor">#if defined(NO_PIPELINE)</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_READ_IN_LIST);
+<a name="l00115"></a>00115     __scheduler-&gt;dma_wait(DMA_READ_OUT_LIST);
+<a name="l00116"></a>00116 <span class="preprocessor">#endif</span>
+<a name="l00117"></a>00117 <span class="preprocessor"></span>    
+<a name="l00118"></a>00118     __taskGroup = <span class="keyword">new</span> TaskGroup;
+<a name="l00119"></a>00119     __taskGroup-&gt;command = __task-&gt;self;
+<a name="l00120"></a>00120 }
+<a name="l00121"></a>00121 
+<a name="l00127"></a>00127 <span class="keywordtype">void</span>
+<a name="l00128"></a>00128 SchedTask::ex_init_renew(<span class="keywordtype">void</span>)
+<a name="l00129"></a>00129 {
+<a name="l00130"></a>00130     __inListData = __task-&gt;inData;
+<a name="l00131"></a>00131     __outListData = __task-&gt;outData;
+<a name="l00132"></a>00132     __taskGroup = (TaskGroupPtr)__task-&gt;self;    
+<a name="l00133"></a>00133 }
+<a name="l00134"></a>00134 
+<a name="l00144"></a>00144 <span class="keywordtype">void</span>
+<a name="l00145"></a>00145 SchedTask::read(<span class="keywordtype">void</span>)
+<a name="l00146"></a>00146 {    
+<a name="l00147"></a>00147     __debug(<span class="stringliteral">"[SchedTask:%s]\n"</span>, __FUNCTION__);
+<a name="l00148"></a>00148 
+<a name="l00149"></a>00149 <span class="preprocessor">#if !defined(NO_PIPELINE)</span>
+<a name="l00150"></a>00150 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_READ_IN_LIST);
+<a name="l00151"></a>00151     __scheduler-&gt;dma_wait(DMA_READ_OUT_LIST);
+<a name="l00152"></a>00152 <span class="preprocessor">#endif</span>
+<a name="l00153"></a>00153 <span class="preprocessor"></span>
+<a name="l00154"></a>00154     __writebuf = __scheduler-&gt;allocate(__outListData-&gt;size);
+<a name="l00155"></a>00155     
+<a name="l00156"></a>00156     <span class="comment">// ɤǡĤʤ̵</span>
+<a name="l00157"></a>00157     <span class="keywordflow">if</span> (__inListData-&gt;length == 0) <span class="keywordflow">return</span>;
+<a name="l00158"></a>00158 
+<a name="l00159"></a>00159     <span class="comment">// load Input Data</span>
+<a name="l00160"></a>00160     __readbuf = __scheduler-&gt;allocate(__inListData-&gt;size);
+<a name="l00161"></a>00161     __scheduler-&gt;dma_loadList(__inListData, __readbuf, DMA_READ);
+<a name="l00162"></a>00162 
+<a name="l00163"></a>00163 <span class="preprocessor">#if defined(NO_PIPELINE)</span>
+<a name="l00164"></a>00164 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_READ);
+<a name="l00165"></a>00165 <span class="preprocessor">#endif</span>
+<a name="l00166"></a>00166 <span class="preprocessor"></span>
+<a name="l00167"></a>00167     (this-&gt;*ex_read)();
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170 <span class="keywordtype">void</span>
+<a name="l00171"></a>00171 SchedTask::exec(<span class="keywordtype">void</span>)
+<a name="l00172"></a>00172 {
+<a name="l00173"></a>00173     __debug(<span class="stringliteral">"[SchedTask:%s]\n"</span>, __FUNCTION__);
+<a name="l00174"></a>00174 
+<a name="l00175"></a>00175 <span class="preprocessor">#if !defined(NO_PIPELINE)</span>
+<a name="l00176"></a>00176 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_READ);
+<a name="l00177"></a>00177 <span class="preprocessor">#endif</span>
+<a name="l00178"></a>00178 <span class="preprocessor"></span>
+<a name="l00179"></a>00179     <span class="comment">//run(__readbuf, __writebuf);</span>
+<a name="l00180"></a>00180     (this-&gt;*run_func)(__readbuf, __writebuf);
+<a name="l00181"></a>00181 
+<a name="l00182"></a>00182     free(__readbuf);
+<a name="l00183"></a>00183 
+<a name="l00184"></a>00184     <span class="keywordflow">if</span> (__taskGroup-&gt;status() != 0) {
+<a name="l00185"></a>00185         __task-&gt;self = __taskGroup-&gt;command;
+<a name="l00186"></a>00186         <span class="keyword">delete</span> __taskGroup;
+<a name="l00187"></a>00187         __taskGroup = NULL;
+<a name="l00188"></a>00188     }
+<a name="l00189"></a>00189 
+<a name="l00190"></a>00190 
+<a name="l00191"></a>00191     <span class="comment">// 񤭹ΰ褬ʤ̵</span>
+<a name="l00192"></a>00192     <span class="keywordflow">if</span> (__outListData-&gt;length &gt; 0) {
+<a name="l00193"></a>00193         __scheduler-&gt;dma_storeList(__outListData, __writebuf, DMA_WRITE);
+<a name="l00194"></a>00194 
+<a name="l00195"></a>00195 <span class="preprocessor">#if defined(NO_PIPELINE)</span>
+<a name="l00196"></a>00196 <span class="preprocessor"></span>        __scheduler-&gt;dma_wait(DMA_WRITE);
+<a name="l00197"></a>00197         free(__writebuf);
+<a name="l00198"></a>00198 <span class="preprocessor">#endif</span>
+<a name="l00199"></a>00199 <span class="preprocessor"></span>    }
+<a name="l00200"></a>00200 
+<a name="l00201"></a>00201     (this-&gt;*ex_exec)();
+<a name="l00202"></a>00202 }
+<a name="l00203"></a>00203 
+<a name="l00204"></a>00204 <span class="keywordtype">void</span>
+<a name="l00205"></a>00205 SchedTask::write(<span class="keywordtype">void</span>)
+<a name="l00206"></a>00206 {
+<a name="l00207"></a>00207     __debug(<span class="stringliteral">"[SchedTask:%s]\n"</span>, __FUNCTION__);
+<a name="l00208"></a>00208     
+<a name="l00209"></a>00209 <span class="preprocessor">#if !defined(NO_PIPELINE)</span>
+<a name="l00210"></a>00210 <span class="preprocessor"></span>    __scheduler-&gt;dma_wait(DMA_WRITE);
+<a name="l00211"></a>00211     free(__writebuf);
+<a name="l00212"></a>00212 <span class="preprocessor">#endif</span>
+<a name="l00213"></a>00213 <span class="preprocessor"></span>
+<a name="l00214"></a>00214     <span class="keywordflow">if</span> (__task-&gt;self == MY_SPE_NOP) <span class="keywordflow">return</span>;
+<a name="l00215"></a>00215 
+<a name="l00216"></a>00216     (this-&gt;*ex_write)();
+<a name="l00217"></a>00217 }
+<a name="l00218"></a>00218 
+<a name="l00222"></a>00222 <span class="keywordtype">void</span>
+<a name="l00223"></a>00223 SchedTask::ex_read_normal(<span class="keywordtype">void</span>)
+<a name="l00224"></a>00224 {
+<a name="l00225"></a>00225 }
+<a name="l00226"></a>00226 
+<a name="l00230"></a>00230 <span class="keywordtype">void</span>
+<a name="l00231"></a>00231 SchedTask::ex_read_renew(<span class="keywordtype">void</span>)
+<a name="l00232"></a>00232 {
+<a name="l00233"></a>00233 }
+<a name="l00234"></a>00234 
+<a name="l00238"></a>00238 <span class="keywordtype">void</span>
+<a name="l00239"></a>00239 SchedTask::ex_exec_normal(<span class="keywordtype">void</span>)
+<a name="l00240"></a>00240 {
+<a name="l00241"></a>00241 }
+<a name="l00242"></a>00242 
+<a name="l00246"></a>00246 <span class="keywordtype">void</span>
+<a name="l00247"></a>00247 SchedTask::ex_exec_renew(<span class="keywordtype">void</span>)
+<a name="l00248"></a>00248 {
+<a name="l00249"></a>00249 }
+<a name="l00250"></a>00250 
+<a name="l00251"></a>00251 
+<a name="l00252"></a>00252 
+<a name="l00260"></a>00260 <span class="keywordtype">void</span>
+<a name="l00261"></a>00261 SchedTask::ex_write_normal(<span class="keywordtype">void</span>)
+<a name="l00262"></a>00262 {
+<a name="l00267"></a>00267     <span class="keywordflow">if</span> (__renew_flag == 0) {
+<a name="l00268"></a>00268         __scheduler-&gt;mail_write(__task-&gt;self);
+<a name="l00269"></a>00269     }
+<a name="l00270"></a>00270 }
+<a name="l00271"></a>00271 
+<a name="l00284"></a>00284 <span class="keywordtype">void</span>
+<a name="l00285"></a>00285 SchedTask::ex_write_renew(<span class="keywordtype">void</span>)
+<a name="l00286"></a>00286 {
+<a name="l00287"></a>00287     uint32 cmd;
+<a name="l00288"></a>00288         
+<a name="l00289"></a>00289     __taskGroup-&gt;remove(__task);
+<a name="l00290"></a>00290     cmd = __taskGroup-&gt;status();    
+<a name="l00291"></a>00291 
+<a name="l00292"></a>00292     <span class="comment">// Ǻ줿ƤΥλ</span>
+<a name="l00293"></a>00293     <span class="keywordflow">if</span> (cmd != 0) {
+<a name="l00294"></a>00294         <span class="keyword">delete</span> __taskGroup;
+<a name="l00295"></a>00295         __scheduler-&gt;mail_write(cmd);
+<a name="l00296"></a>00296     }
+<a name="l00297"></a>00297 }
+<a name="l00298"></a>00298     
+<a name="l00299"></a>00299 SchedTaskBase*
+<a name="l00300"></a>00300 SchedTask::next(Scheduler *m, SchedTaskBase *p)
+<a name="l00301"></a>00301 {
+<a name="l00302"></a>00302     __debug(<span class="stringliteral">"[SchedTask:%s]\n"</span>, __FUNCTION__);
+<a name="l00303"></a>00303 
+<a name="l00304"></a>00304     <span class="keyword">delete</span> p;
+<a name="l00305"></a>00305 
+<a name="l00306"></a>00306     <span class="keywordflow">return</span> (this-&gt;*ex_next)();
+<a name="l00307"></a>00307 }
+<a name="l00308"></a>00308 
+<a name="l00309"></a>00309 SchedTaskBase*
+<a name="l00310"></a>00310 SchedTask::ex_next_normal(<span class="keywordtype">void</span>)
+<a name="l00311"></a>00311 {
+<a name="l00312"></a>00312     <span class="keywordflow">if</span> (__cur_index &lt; __list-&gt;length) {
+<a name="l00313"></a>00313         SchedTaskBase *nextSched;
+<a name="l00314"></a>00314 
+<a name="l00315"></a>00315         nextSched = __scheduler-&gt;get_nextRenewTaskList();
+<a name="l00316"></a>00316         
+<a name="l00317"></a>00317         <span class="comment">// RenewTask </span>
+<a name="l00318"></a>00318         <span class="keywordflow">if</span> (nextSched) {
+<a name="l00319"></a>00319             __scheduler-&gt;set_backupTaskList(__list);
+<a name="l00320"></a>00320             __scheduler-&gt;set_backupTaskListIndex(__cur_index);
+<a name="l00321"></a>00321             <span class="keywordflow">return</span> nextSched;
+<a name="l00322"></a>00322         } <span class="keywordflow">else</span> {
+<a name="l00323"></a>00323             TaskPtr nextTask = &amp;__list-&gt;tasks[__cur_index++];
+<a name="l00324"></a>00324             nextSched = createSchedTask(nextTask);
+<a name="l00325"></a>00325             ((SchedTask*)nextSched)-&gt;__init__(__list, nextTask, __cur_index,
+<a name="l00326"></a>00326                                               __scheduler-&gt;get_curReadBuf(),
+<a name="l00327"></a>00327                                               __scheduler-&gt;get_curWriteBuf(),
+<a name="l00328"></a>00328                                               __scheduler);
+<a name="l00329"></a>00329             <span class="keywordflow">return</span> nextSched;
+<a name="l00330"></a>00330         }
+<a name="l00331"></a>00331     } <span class="keywordflow">else</span> {
+<a name="l00332"></a>00332         uint32 nextList = (uint32)__list-&gt;next;
+<a name="l00333"></a>00333         
+<a name="l00334"></a>00334         if (nextList == 0) {
+<a name="l00335"></a>00335             <span class="keywordflow">return</span> <span class="keyword">new</span> SchedNop2Ready(__scheduler);
+<a name="l00336"></a>00336         } <span class="keywordflow">else</span> {
+<a name="l00337"></a>00337             <span class="keywordflow">return</span> createSchedTaskList(nextList, __scheduler,
+<a name="l00338"></a>00338                                        SCHED_TASKLIST_NORMAL);
+<a name="l00339"></a>00339         }
+<a name="l00340"></a>00340     }
+<a name="l00341"></a>00341 }
+<a name="l00342"></a>00342 
+<a name="l00346"></a>00346 SchedTaskBase*
+<a name="l00347"></a>00347 SchedTask::ex_next_renew(<span class="keywordtype">void</span>)
+<a name="l00348"></a>00348 {
+<a name="l00349"></a>00349     TaskPtr nextTask;
+<a name="l00350"></a>00350     SchedTask *nextSched;
+<a name="l00351"></a>00351 
+<a name="l00352"></a>00352     <span class="keywordflow">if</span> (__cur_index &lt; __list-&gt;length) {
+<a name="l00353"></a>00353         nextTask = &amp;__list-&gt;tasks[__cur_index++];
+<a name="l00354"></a>00354         nextSched = createSchedTask(nextTask);
+<a name="l00355"></a>00355 
+<a name="l00356"></a>00356         <span class="comment">// RenewTaskList ¹ʤΤ</span>
+<a name="l00357"></a>00357         nextSched-&gt;__setRenew();
+<a name="l00358"></a>00358         nextSched-&gt;__init__(__list, nextTask, __cur_index,
+<a name="l00359"></a>00359                             __scheduler-&gt;get_curReadBuf(),
+<a name="l00360"></a>00360                             __scheduler-&gt;get_curWriteBuf(),
+<a name="l00361"></a>00361                             __scheduler);
+<a name="l00362"></a>00362 
+<a name="l00366"></a>00366         __list = NULL;
+<a name="l00367"></a>00367         <span class="keywordflow">return</span> nextSched;
+<a name="l00368"></a>00368     } <span class="keywordflow">else</span> {
+<a name="l00369"></a>00369         SchedTaskBase *nextList;
+<a name="l00370"></a>00370         
+<a name="l00371"></a>00371         nextList = __scheduler-&gt;get_nextRenewTaskList();
+<a name="l00372"></a>00372         
+<a name="l00373"></a>00373         <span class="keywordflow">if</span> (nextList) {
+<a name="l00374"></a>00374             <span class="keywordflow">return</span> nextList;
+<a name="l00375"></a>00375         } <span class="keywordflow">else</span> {
+<a name="l00376"></a>00376             TaskListPtr nextList = __scheduler-&gt;get_backupTaskList();
+<a name="l00377"></a>00377 
+<a name="l00378"></a>00378             <span class="comment">// Ǥ TaskList </span>
+<a name="l00379"></a>00379             <span class="keywordflow">if</span> (nextList) {
+<a name="l00380"></a>00380                 __cur_index = __scheduler-&gt;get_backupTaskListIndex();
+<a name="l00381"></a>00381                 
+<a name="l00382"></a>00382                 nextTask = &amp;nextList-&gt;tasks[__cur_index++];
+<a name="l00383"></a>00383                 nextSched = createSchedTask(nextTask);
+<a name="l00384"></a>00384                 
+<a name="l00385"></a>00385                 nextSched-&gt;__init__(nextList, nextTask, __cur_index,
+<a name="l00386"></a>00386                                     __scheduler-&gt;get_curReadBuf(),
+<a name="l00387"></a>00387                                     __scheduler-&gt;get_curWriteBuf(),
+<a name="l00388"></a>00388                                     __scheduler);
+<a name="l00389"></a>00389                 <span class="keywordflow">return</span> nextSched;
+<a name="l00390"></a>00390             } <span class="keywordflow">else</span> {
+<a name="l00391"></a>00391                 <span class="keywordflow">return</span> <span class="keyword">new</span> SchedNop2Ready(__scheduler);
+<a name="l00392"></a>00392             }
+<a name="l00393"></a>00393         }
+<a name="l00394"></a>00394     }
+<a name="l00395"></a>00395 }
+<a name="l00396"></a>00396 
+<a name="l00397"></a>00397 <span class="keywordtype">int</span>
+<a name="l00398"></a>00398 SchedTask::get_cpuid(<span class="keywordtype">void</span>)
+<a name="l00399"></a>00399 {
+<a name="l00400"></a>00400     <span class="keywordflow">return</span> __scheduler-&gt;id;
+<a name="l00401"></a>00401 }
+<a name="l00402"></a>00402 
+<a name="l00407"></a>00407 <span class="keywordtype">void</span>*
+<a name="l00408"></a>00408 SchedTask::get_input(<span class="keywordtype">void</span> *buff, <span class="keywordtype">int</span> index)
+<a name="l00409"></a>00409 {
+<a name="l00410"></a>00410     <span class="keywordflow">if</span> (buff != NULL) {
+<a name="l00411"></a>00411         <span class="keywordflow">return</span> (<span class="keywordtype">void</span>*)((int)buff + __inListData-&gt;bound[index]);
+<a name="l00412"></a>00412     } <span class="keywordflow">else</span> {
+<a name="l00413"></a>00413         <span class="keywordflow">return</span> NULL;
+<a name="l00414"></a>00414     }
+<a name="l00415"></a>00415 }
+<a name="l00416"></a>00416 
+<a name="l00420"></a>00420 uint32
+<a name="l00421"></a>00421 SchedTask::get_inputAddr(<span class="keywordtype">int</span> index)
+<a name="l00422"></a>00422 {
+<a name="l00423"></a>00423     <span class="keywordflow">return</span> __inListData-&gt;element[index].addr;
+<a name="l00424"></a>00424 }
+<a name="l00425"></a>00425 
+<a name="l00429"></a>00429 <span class="keywordtype">int</span>
+<a name="l00430"></a>00430 SchedTask::get_inputSize(<span class="keywordtype">int</span> index)
+<a name="l00431"></a>00431 {
+<a name="l00432"></a>00432     <span class="keywordflow">return</span> __inListData-&gt;element[index].size;
+<a name="l00433"></a>00433 }
+<a name="l00434"></a>00434 
+<a name="l00438"></a>00438 <span class="keywordtype">void</span>*
+<a name="l00439"></a>00439 SchedTask::get_output(<span class="keywordtype">void</span> *buff, <span class="keywordtype">int</span> index)
+<a name="l00440"></a>00440 {
+<a name="l00441"></a>00441     <span class="keywordflow">if</span> (buff != NULL) {
+<a name="l00442"></a>00442         <span class="keywordflow">return</span> (<span class="keywordtype">void</span>*)((int)buff + __outListData-&gt;bound[index]);
+<a name="l00443"></a>00443     } <span class="keywordflow">else</span> {
+<a name="l00444"></a>00444         <span class="keywordflow">return</span> NULL;
+<a name="l00445"></a>00445     }
+<a name="l00446"></a>00446 }
+<a name="l00447"></a>00447 
+<a name="l00451"></a>00451 uint32
+<a name="l00452"></a>00452 SchedTask::get_outputAddr(<span class="keywordtype">int</span> index)
+<a name="l00453"></a>00453 {
+<a name="l00454"></a>00454     <span class="keywordflow">return</span> __outListData-&gt;element[index].addr;
+<a name="l00455"></a>00455 }
+<a name="l00456"></a>00456 
+<a name="l00460"></a>00460 <span class="keywordtype">int</span>
+<a name="l00461"></a>00461 SchedTask::get_outputSize(<span class="keywordtype">int</span> index)
+<a name="l00462"></a>00462 {
+<a name="l00463"></a>00463     <span class="keywordflow">return</span> __outListData-&gt;element[index].size;
+<a name="l00464"></a>00464 }
+<a name="l00465"></a>00465 
+<a name="l00466"></a>00466 <span class="keywordtype">int</span>
+<a name="l00467"></a>00467 SchedTask::get_param(<span class="keywordtype">int</span> index)
+<a name="l00468"></a>00468 {
+<a name="l00469"></a>00469     <span class="keywordflow">return</span> __task-&gt;param[index];
+<a name="l00470"></a>00470 }
+<a name="l00471"></a>00471 
+<a name="l00472"></a>00472 TaskPtr
+<a name="l00473"></a>00473 SchedTask::create_task(<span class="keywordtype">int</span> cmd)
+<a name="l00474"></a>00474 {
+<a name="l00475"></a>00475     TaskListPtr taskList = __scheduler-&gt;get_renewListBuf();
+<a name="l00476"></a>00476     TaskPtr p = &amp;taskList-&gt;tasks[taskList-&gt;length++];
+<a name="l00477"></a>00477     p-&gt;command = cmd;
+<a name="l00478"></a>00478 
+<a name="l00479"></a>00479     p-&gt;inData = (ListData*)__scheduler-&gt;allocate(<span class="keyword">sizeof</span>(ListData));
+<a name="l00480"></a>00480     p-&gt;outData = (ListData*)__scheduler-&gt;allocate(<span class="keyword">sizeof</span>(ListData));
+<a name="l00481"></a>00481 
+<a name="l00482"></a>00482     p-&gt;inData-&gt;clear();
+<a name="l00483"></a>00483     p-&gt;outData-&gt;clear();
+<a name="l00484"></a>00484 
+<a name="l00485"></a>00485     p-&gt;self = MY_SPE_NOP;
+<a name="l00486"></a>00486     p-&gt;param_size = 0;
+<a name="l00487"></a>00487 
+<a name="l00488"></a>00488     <span class="keywordflow">return</span> p;
+<a name="l00489"></a>00489 }
+<a name="l00490"></a>00490 
+<a name="l00497"></a>00497 <span class="keywordtype">void</span>
+<a name="l00498"></a>00498 SchedTask::wait_task(TaskPtr waitTask)
+<a name="l00499"></a>00499 {
+<a name="l00500"></a>00500     waitTask-&gt;self = (uint32)__taskGroup;
+<a name="l00501"></a>00501 
+<a name="l00502"></a>00502     __scheduler-&gt;add_groupTask(__taskGroup, waitTask);
+<a name="l00503"></a>00503 
+<a name="l00504"></a>00504     __renew_flag++;
+<a name="l00505"></a>00505 }
+<a name="l00506"></a>00506 
+<a name="l00507"></a>00507 <span class="keywordtype">void</span>*
+<a name="l00508"></a>00508 SchedTask::global_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size) {
+<a name="l00509"></a>00509     <span class="keywordflow">return</span> __scheduler-&gt;global_alloc(<span class="keywordtype">id</span>, size);
+<a name="l00510"></a>00510 }
+<a name="l00511"></a>00511 
+<a name="l00512"></a>00512 <span class="keywordtype">void</span>*
+<a name="l00513"></a>00513 SchedTask::global_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) {
+<a name="l00514"></a>00514     <span class="keywordflow">return</span> __scheduler-&gt;global_get(<span class="keywordtype">id</span>);
+<a name="l00515"></a>00515 }
+<a name="l00516"></a>00516 
+<a name="l00517"></a>00517 <span class="keywordtype">void</span>
+<a name="l00518"></a>00518 SchedTask::global_free(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) {
+<a name="l00519"></a>00519     __scheduler-&gt;global_free(<span class="keywordtype">id</span>);
+<a name="l00520"></a>00520 }
+<a name="l00521"></a>00521 
+<a name="l00522"></a>00522 <span class="keywordtype">void</span>
+<a name="l00523"></a>00523 SchedTask::mainMem_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size) {
+<a name="l00524"></a>00524     __scheduler-&gt;mainMem_alloc(<span class="keywordtype">id</span>, size);
+<a name="l00525"></a>00525 }
+<a name="l00526"></a>00526 
+<a name="l00527"></a>00527 <span class="keywordtype">void</span>
+<a name="l00528"></a>00528 SchedTask::mainMem_wait(<span class="keywordtype">void</span>) {
+<a name="l00529"></a>00529     __scheduler-&gt;mainMem_wait();
+<a name="l00530"></a>00530 }
+<a name="l00531"></a>00531 
+<a name="l00532"></a>00532 <span class="keywordtype">void</span>*
+<a name="l00533"></a>00533 SchedTask::mainMem_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) {
+<a name="l00534"></a>00534     <span class="keywordflow">return</span> __scheduler-&gt;mainMem_get(<span class="keywordtype">id</span>);
+<a name="l00535"></a>00535 }
+<a name="l00536"></a>00536 
+<a name="l00537"></a>00537 <span class="keywordtype">void</span>*
+<a name="l00538"></a>00538 SchedTask::allocate(<span class="keywordtype">int</span> size) {
+<a name="l00539"></a>00539     <span class="keywordflow">return</span> __scheduler-&gt;allocate(size);
+<a name="l00540"></a>00540 }
+<a name="l00541"></a>00541 
+<a name="l00542"></a>00542 <span class="keywordtype">void</span>
+<a name="l00543"></a>00543 SchedTask::dma_load(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask) {
+<a name="l00544"></a>00544     __scheduler-&gt;dma_load(buf, addr, size, mask);
+<a name="l00545"></a>00545 }
+<a name="l00546"></a>00546 
+<a name="l00547"></a>00547 <span class="keywordtype">void</span>
+<a name="l00548"></a>00548 SchedTask::dma_store(<span class="keywordtype">void</span> *buf,uint32 addr, uint32 size, uint32 mask) {
+<a name="l00549"></a>00549     __scheduler-&gt;dma_store(buf, addr, size, mask);
+<a name="l00550"></a>00550 }
+<a name="l00551"></a>00551 
+<a name="l00552"></a>00552 <span class="keywordtype">void</span>
+<a name="l00553"></a>00553 SchedTask::dma_wait(uint32 mask) {
+<a name="l00554"></a>00554     __scheduler-&gt;dma_wait(mask);
+<a name="l00555"></a>00555 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2schedule_2Scheduler_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: Scheduler.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>Scheduler.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
+<a name="l00002"></a>00002 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
+<a name="l00003"></a>00003 <span class="preprocessor">#include "Scheduler.h"</span>
+<a name="l00004"></a>00004 <span class="preprocessor">#include "SchedNop.h"</span>
+<a name="l00005"></a>00005 <span class="preprocessor">#include "error.h"</span>
+<a name="l00006"></a>00006 
+<a name="l00007"></a>00007 Scheduler::TaskObject task_list[MAX_TASK_OBJECT];
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 Scheduler::~Scheduler(<span class="keywordtype">void</span>)
+<a name="l00010"></a>00010 {
+<a name="l00011"></a>00011     <span class="keyword">delete</span> connector;
+<a name="l00012"></a>00012 }
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014 <span class="keywordtype">void</span>
+<a name="l00015"></a>00015 Scheduler::init(<span class="keywordtype">void</span>)
+<a name="l00016"></a>00016 {
+<a name="l00017"></a>00017     init_impl();
+<a name="l00018"></a>00018 
+<a name="l00019"></a>00019     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {
+<a name="l00020"></a>00020         buff_taskList[i]    = (TaskListPtr)allocate(<span class="keyword">sizeof</span>(TaskList));
+<a name="l00021"></a>00021         buff_inListData[i]  = (ListDataPtr)allocate(<span class="keyword">sizeof</span>(ListData));
+<a name="l00022"></a>00022         buff_outListData[i] = (ListDataPtr)allocate(<span class="keyword">sizeof</span>(ListData));
+<a name="l00023"></a>00023     }
+<a name="l00024"></a>00024     
+<a name="l00025"></a>00025     buffFlag_taskList = 0;
+<a name="l00026"></a>00026     buffFlag_inListData = 0;
+<a name="l00027"></a>00027     buffFlag_outListData = 0;
+<a name="l00028"></a>00028     flag_renewTaskList = 0;
+<a name="l00029"></a>00029 
+<a name="l00030"></a>00030     <span class="comment">// bzero Ǥ⤤</span>
+<a name="l00031"></a>00031     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAX_GLOBAL_AREA; i++) {
+<a name="l00032"></a>00032         globalList[i] = NULL;
+<a name="l00033"></a>00033     }
+<a name="l00034"></a>00034 
+<a name="l00035"></a>00035     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; MAX_MAINMEM_AREA; i++) {
+<a name="l00036"></a>00036         mainMemList[i] = NULL;
+<a name="l00037"></a>00037     }
+<a name="l00038"></a>00038     
+<a name="l00039"></a>00039 
+<a name="l00040"></a>00040     taskGroup = <span class="keyword">new</span> TaskGroup;
+<a name="l00041"></a>00041     renewTop_taskList = NULL;
+<a name="l00042"></a>00042     renewCur_taskList = NULL;
+<a name="l00043"></a>00043 }
+<a name="l00044"></a>00044 
+<a name="l00045"></a>00045 <span class="keywordtype">void</span>
+<a name="l00046"></a>00046 Scheduler::run(<span class="keywordtype">void</span>)
+<a name="l00047"></a>00047 {
+<a name="l00048"></a>00048     SchedTaskBase* taskTmp;
+<a name="l00049"></a>00049 
+<a name="l00050"></a>00050     task1 = <span class="keyword">new</span> SchedNop();
+<a name="l00051"></a>00051     task2 = <span class="keyword">new</span> SchedNop();
+<a name="l00052"></a>00052     task3 = <span class="keyword">new</span> SchedNop();
+<a name="l00053"></a>00053 
+<a name="l00054"></a>00054     <span class="comment">// main loop</span>
+<a name="l00055"></a>00055     <span class="keywordflow">do</span> {
+<a name="l00056"></a>00056         __debug(<span class="stringliteral">"----------\n"</span>);
+<a name="l00057"></a>00057         task3-&gt;write();
+<a name="l00058"></a>00058         task2-&gt;exec();
+<a name="l00059"></a>00059         task1-&gt;read();
+<a name="l00060"></a>00060 
+<a name="l00061"></a>00061         taskTmp = task3;
+<a name="l00062"></a>00062         task3 = task2;
+<a name="l00063"></a>00063         task2 = task1;
+<a name="l00064"></a>00064         task1 = task1-&gt;next(<span class="keyword">this</span>, taskTmp);
+<a name="l00065"></a>00065     } <span class="keywordflow">while</span> (task1);
+<a name="l00066"></a>00066 
+<a name="l00067"></a>00067     <span class="keyword">delete</span> task3;
+<a name="l00068"></a>00068     <span class="keyword">delete</span> task2;
+<a name="l00069"></a>00069 }
+<a name="l00070"></a>00070 
+<a name="l00071"></a>00071 
+<a name="l00072"></a>00072 <span class="keywordtype">void</span>
+<a name="l00073"></a>00073 Scheduler::finish(<span class="keywordtype">void</span>)
+<a name="l00074"></a>00074 {
+<a name="l00075"></a>00075     free(buff_taskList[0]);
+<a name="l00076"></a>00076     free(buff_taskList[1]);
+<a name="l00077"></a>00077     free(buff_inListData[0]);
+<a name="l00078"></a>00078     free(buff_inListData[1]);
+<a name="l00079"></a>00079     free(buff_outListData[0]);
+<a name="l00080"></a>00080     free(buff_outListData[1]);
+<a name="l00081"></a>00081 }
+<a name="l00082"></a>00082 
+<a name="l00087"></a>00087 TaskListPtr
+<a name="l00088"></a>00088 Scheduler::get_curListBuf(<span class="keywordtype">void</span>)
+<a name="l00089"></a>00089 {
+<a name="l00090"></a>00090     buffFlag_taskList ^= 1;
+<a name="l00091"></a>00091 
+<a name="l00092"></a>00092     <span class="keywordflow">return</span> buff_taskList[buffFlag_taskList];
+<a name="l00093"></a>00093 }
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 
+<a name="l00100"></a>00100 ListDataPtr
+<a name="l00101"></a>00101 Scheduler::get_curWriteBuf(<span class="keywordtype">void</span>)
+<a name="l00102"></a>00102 {
+<a name="l00103"></a>00103     buffFlag_outListData ^= 1;
+<a name="l00104"></a>00104     <span class="keywordflow">return</span> buff_outListData[buffFlag_outListData];
+<a name="l00105"></a>00105 }
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107 
+<a name="l00108"></a>00108 ListDataPtr
+<a name="l00109"></a>00109 Scheduler::get_curReadBuf(<span class="keywordtype">void</span>)
+<a name="l00110"></a>00110 {
+<a name="l00111"></a>00111     buffFlag_inListData ^= 1;
+<a name="l00112"></a>00112     <span class="keywordflow">return</span> buff_inListData[buffFlag_inListData];
+<a name="l00113"></a>00113 }
+<a name="l00114"></a>00114 
+<a name="l00124"></a>00124 TaskListPtr
+<a name="l00125"></a>00125 Scheduler::get_renewListBuf(<span class="keywordtype">void</span>)
+<a name="l00126"></a>00126 {
+<a name="l00127"></a>00127     <span class="keywordflow">if</span> (renewCur_taskList &amp;&amp; renewCur_taskList-&gt;length &lt; TASK_MAX_SIZE) {
+<a name="l00128"></a>00128         <span class="keywordflow">return</span> renewCur_taskList;
+<a name="l00129"></a>00129     } <span class="keywordflow">else</span> {
+<a name="l00130"></a>00130         TaskListPtr newList = (TaskListPtr)allocate(<span class="keyword">sizeof</span>(TaskList));
+<a name="l00131"></a>00131         newList-&gt;length = 0;
+<a name="l00132"></a>00132         newList-&gt;next = NULL;
+<a name="l00133"></a>00133         renewTop_taskList = TaskList::append(renewTop_taskList, newList);
+<a name="l00134"></a>00134         renewCur_taskList = newList;
+<a name="l00135"></a>00135         <span class="keywordflow">return</span> newList;
+<a name="l00136"></a>00136     }
+<a name="l00137"></a>00137 }
+<a name="l00138"></a>00138 
+<a name="l00147"></a>00147 SchedTaskList*
+<a name="l00148"></a>00148 Scheduler::get_nextRenewTaskList(<span class="keywordtype">void</span>)
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150     <span class="keywordflow">if</span> (renewTop_taskList) {
+<a name="l00151"></a>00151         TaskListPtr list  = renewTop_taskList;
+<a name="l00152"></a>00152         renewTop_taskList = renewTop_taskList-&gt;next;
+<a name="l00153"></a>00153         renewCur_taskList = NULL;
+<a name="l00154"></a>00154 
+<a name="l00155"></a>00155         list-&gt;next = NULL;
+<a name="l00156"></a>00156         SchedTaskList *sched
+<a name="l00157"></a>00157             = createSchedTaskList((uint32)list, <span class="keyword">this</span>, SCHED_TASKLIST_RENEW);
+<a name="l00158"></a>00158         <span class="keywordflow">return</span> sched;
+<a name="l00159"></a>00159     } <span class="keywordflow">else</span> {
+<a name="l00160"></a>00160         <span class="keywordflow">return</span> NULL;
+<a name="l00161"></a>00161     }
+<a name="l00162"></a>00162 }
+<a name="l00163"></a>00163 
+<a name="l00164"></a>00164 <span class="keywordtype">void</span>
+<a name="l00165"></a>00165 Scheduler::set_backupTaskList(TaskListPtr cur_taskList)
+<a name="l00166"></a>00166 {
+<a name="l00167"></a>00167     bak_curTaskList = cur_taskList;
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169 
+<a name="l00170"></a>00170 <span class="keywordtype">void</span>
+<a name="l00171"></a>00171 Scheduler::set_backupTaskListIndex(<span class="keywordtype">int</span> cur_index)
+<a name="l00172"></a>00172 {
+<a name="l00173"></a>00173     bakIndex_taskList = cur_index;
+<a name="l00174"></a>00174 }
+<a name="l00175"></a>00175 
+<a name="l00182"></a>00182 TaskListPtr
+<a name="l00183"></a>00183 Scheduler::get_backupTaskList(<span class="keywordtype">void</span>)
+<a name="l00184"></a>00184 {
+<a name="l00185"></a>00185     TaskListPtr ret = bak_curTaskList;
+<a name="l00186"></a>00186     
+<a name="l00187"></a>00187     bak_curTaskList = NULL;
+<a name="l00188"></a>00188     <span class="keywordflow">return</span> ret;
+<a name="l00189"></a>00189 }
+<a name="l00190"></a>00190 
+<a name="l00191"></a>00191 <span class="keywordtype">int</span>
+<a name="l00192"></a>00192 Scheduler::get_backupTaskListIndex(<span class="keywordtype">void</span>)
+<a name="l00193"></a>00193 {
+<a name="l00194"></a>00194     <span class="keywordtype">int</span> ret = bakIndex_taskList;
+<a name="l00195"></a>00195 
+<a name="l00196"></a>00196     bakIndex_taskList = 0;
+<a name="l00197"></a>00197     <span class="keywordflow">return</span> ret;
+<a name="l00198"></a>00198 }
+<a name="l00199"></a>00199 
+<a name="l00200"></a>00200 <span class="keywordtype">void</span>
+<a name="l00201"></a>00201 Scheduler::dma_load(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask)
+<a name="l00202"></a>00202 {
+<a name="l00203"></a>00203     connector-&gt;dma_load(buf, addr, size, mask);
+<a name="l00204"></a>00204 }
+<a name="l00205"></a>00205 
+<a name="l00206"></a>00206 <span class="keywordtype">void</span>
+<a name="l00207"></a>00207 Scheduler::dma_store(<span class="keywordtype">void</span> *buf, uint32 addr, uint32 size, uint32 mask)
+<a name="l00208"></a>00208 {
+<a name="l00209"></a>00209     connector-&gt;dma_store(buf, addr, size, mask);
+<a name="l00210"></a>00210 }
+<a name="l00211"></a>00211 
+<a name="l00212"></a>00212 <span class="keywordtype">void</span>
+<a name="l00213"></a>00213 Scheduler::dma_wait(uint32 mask)
+<a name="l00214"></a>00214 {
+<a name="l00215"></a>00215     connector-&gt;dma_wait(mask);
+<a name="l00216"></a>00216 }
+<a name="l00217"></a>00217 
+<a name="l00218"></a>00218 <span class="keywordtype">void</span>
+<a name="l00219"></a>00219 Scheduler::dma_loadList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00220"></a>00220 {
+<a name="l00221"></a>00221     connector-&gt;dma_loadList(list, buff, mask);
+<a name="l00222"></a>00222 }
+<a name="l00223"></a>00223 
+<a name="l00224"></a>00224 
+<a name="l00225"></a>00225 <span class="keywordtype">void</span>
+<a name="l00226"></a>00226 Scheduler::dma_storeList(ListDataPtr list, <span class="keywordtype">void</span> *buff, uint32 mask)
+<a name="l00227"></a>00227 {
+<a name="l00228"></a>00228     <span class="keywordflow">return</span> connector-&gt;dma_storeList(list, buff, mask);
+<a name="l00229"></a>00229 }
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231 <span class="keywordtype">void</span>
+<a name="l00232"></a>00232 Scheduler::mail_write(uint32 data)
+<a name="l00233"></a>00233 {
+<a name="l00234"></a>00234     connector-&gt;mail_write(data);
+<a name="l00235"></a>00235 }
+<a name="l00236"></a>00236 
+<a name="l00237"></a>00237 uint32
+<a name="l00238"></a>00238 Scheduler::mail_read(<span class="keywordtype">void</span>)
+<a name="l00239"></a>00239 {
+<a name="l00240"></a>00240     <span class="keywordflow">return</span> connector-&gt;mail_read();
+<a name="l00241"></a>00241 }
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243 TaskGroupPtr
+<a name="l00244"></a>00244 Scheduler::set_groupTask(uint32 command)
+<a name="l00245"></a>00245 {
+<a name="l00246"></a>00246     TaskGroupPtr ret = taskGroup;
+<a name="l00247"></a>00247 
+<a name="l00248"></a>00248     reload_groupTask();
+<a name="l00249"></a>00249 
+<a name="l00250"></a>00250     ret-&gt;command = command;
+<a name="l00251"></a>00251     <span class="keywordflow">return</span> ret;
+<a name="l00252"></a>00252 }
+<a name="l00253"></a>00253 
+<a name="l00254"></a>00254 <span class="keywordtype">void</span>
+<a name="l00255"></a>00255 Scheduler::add_groupTask(TaskGroupPtr group, TaskPtr task)
+<a name="l00256"></a>00256 {
+<a name="l00257"></a>00257     group-&gt;add(task);
+<a name="l00258"></a>00258 }
+<a name="l00259"></a>00259 
+<a name="l00260"></a>00260 <span class="keywordtype">void</span>
+<a name="l00261"></a>00261 Scheduler::remove_groupTask(TaskGroupPtr group, TaskPtr task)
+<a name="l00262"></a>00262 {
+<a name="l00263"></a>00263     group-&gt;remove(task);
+<a name="l00264"></a>00264 }
+<a name="l00265"></a>00265 
+<a name="l00266"></a>00266 <span class="keywordtype">void</span>
+<a name="l00267"></a>00267 Scheduler::reload_groupTask(<span class="keywordtype">void</span>)
+<a name="l00268"></a>00268 {
+<a name="l00269"></a>00269     taskGroup = <span class="keyword">new</span> TaskGroup;
+<a name="l00270"></a>00270 }
+<a name="l00271"></a>00271 
+<a name="l00272"></a>00272 uint32
+<a name="l00273"></a>00273 Scheduler::status_groupTask(TaskGroupPtr group)
+<a name="l00274"></a>00274 {
+<a name="l00275"></a>00275     <span class="keywordflow">return</span> group-&gt;status();
+<a name="l00276"></a>00276 }
+<a name="l00277"></a>00277 
+<a name="l00278"></a>00278 <span class="keywordtype">void</span>*
+<a name="l00279"></a>00279 Scheduler::global_alloc(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> size)
+<a name="l00280"></a>00280 {
+<a name="l00281"></a>00281     globalList[id] = allocate(size);
+<a name="l00282"></a>00282     <span class="keywordflow">return</span> globalList[id];
+<a name="l00283"></a>00283 }
+<a name="l00284"></a>00284 
+<a name="l00285"></a>00285 <span class="keywordtype">void</span>*
+<a name="l00286"></a>00286 Scheduler::global_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
+<a name="l00287"></a>00287 {
+<a name="l00288"></a>00288     <span class="keywordflow">return</span> globalList[id];
+<a name="l00289"></a>00289 }
+<a name="l00290"></a>00290 
+<a name="l00291"></a>00291 <span class="keywordtype">void</span>
+<a name="l00292"></a>00292 Scheduler::global_free(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
+<a name="l00293"></a>00293 {
+<a name="l00294"></a>00294     free(globalList[<span class="keywordtype">id</span>]);
+<a name="l00295"></a>00295     globalList[id] = NULL;
+<a name="l00296"></a>00296 }
+<a name="l00297"></a>00297 
+<a name="l00302"></a>00302 <span class="keywordtype">void</span>*
+<a name="l00303"></a>00303 Scheduler::mainMem_get(<span class="keywordtype">int</span> <span class="keywordtype">id</span>)
+<a name="l00304"></a>00304 {
+<a name="l00305"></a>00305     <span class="keywordflow">return</span> mainMemList[id];
+<a name="l00306"></a>00306 }
+<a name="l00307"></a>00307 
+<a name="l00308"></a>00308 
+<a name="l00313"></a>00313 <span class="keywordtype">void</span>
+<a name="l00314"></a>00314 register_task(<span class="keywordtype">int</span> cmd, Scheduler::TaskObject task)
+<a name="l00315"></a>00315 {
+<a name="l00316"></a>00316     task_list[cmd] = task;
+<a name="l00317"></a>00317 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/kernel_2schedule_2TaskGroup_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: TaskGroup.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>TaskGroup.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "TaskGroup.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 <span class="keywordtype">void</span>
+<a name="l00004"></a>00004 TaskGroup::add(TaskPtr add_task) {
+<a name="l00005"></a>00005     TaskQueuePtr q = <span class="keyword">new</span> TaskQueue(add_task);
+<a name="l00006"></a>00006     group = TaskQueue::append(group, q);
+<a name="l00007"></a>00007 }
+<a name="l00008"></a>00008 
+<a name="l00009"></a>00009 <span class="keywordtype">void</span>
+<a name="l00010"></a>00010 TaskGroup::remove(TaskPtr delete_task) {
+<a name="l00011"></a>00011     TaskQueuePtr p = group;
+<a name="l00012"></a>00012     TaskQueuePtr p1;
+<a name="l00013"></a>00013 
+<a name="l00014"></a>00014     <span class="keywordflow">if</span> (p == NULL) <span class="keywordflow">return</span>;
+<a name="l00015"></a>00015 
+<a name="l00016"></a>00016     <span class="keywordflow">if</span> (p-&gt;task == delete_task) {
+<a name="l00017"></a>00017         group = group-&gt;next;
+<a name="l00018"></a>00018         <span class="keyword">delete</span> p;
+<a name="l00019"></a>00019     } <span class="keywordflow">else</span> {
+<a name="l00020"></a>00020         p1 = p-&gt;next;
+<a name="l00021"></a>00021         <span class="keywordflow">while</span> (p1 &amp;&amp; p1-&gt;task != delete_task) {
+<a name="l00022"></a>00022             p1 = p1-&gt;next;
+<a name="l00023"></a>00023             p = p-&gt;next;
+<a name="l00024"></a>00024         }
+<a name="l00025"></a>00025         <span class="keywordflow">if</span> (p1) {
+<a name="l00026"></a>00026             p-&gt;next = p1-&gt;next;
+<a name="l00027"></a>00027             <span class="keyword">delete</span> p1;
+<a name="l00028"></a>00028         }
+<a name="l00029"></a>00029     }
+<a name="l00030"></a>00030 }
+<a name="l00031"></a>00031 
+<a name="l00038"></a>00038 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>
+<a name="l00039"></a>00039 TaskGroup::status(<span class="keywordtype">void</span>) {
+<a name="l00046"></a>00046 <span class="preprocessor">#if 1</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span>    <span class="keywordflow">return</span> (group == NULL) * command;
+<a name="l00048"></a>00048 <span class="preprocessor">#else</span>
+<a name="l00049"></a>00049 <span class="preprocessor"></span>    <span class="keywordflow">if</span> (group.empty()) {
+<a name="l00050"></a>00050         <span class="keywordflow">return</span> command;
+<a name="l00051"></a>00051     } <span class="keywordflow">else</span> {
+<a name="l00052"></a>00052         <span class="keywordflow">return</span> 0;
+<a name="l00053"></a>00053     }
+<a name="l00054"></a>00054 <span class="preprocessor">#endif</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span>}
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/p__shot_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/p__shot_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>p_shot.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define P_SHOT1 scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/panel__1024_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/panel__1024_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>panel_1024.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define PANEL_1024 scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/panel__2048_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/panel__2048_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>panel_2048.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define PANEL_2048 scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/panel__512_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/panel__512_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>panel_512.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define PANEL_512 scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/player_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/player_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -24,7 +24,7 @@
 <a name="l00004"></a>00004 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_R scene_graph-&gt;next-&gt;next-&gt;next</span>
 <a name="l00005"></a>00005 <span class="preprocessor"></span><span class="preprocessor">#define PLAYER_RR scene_graph-&gt;next-&gt;next-&gt;next-&gt;next</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/player__action_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/player__action_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -26,7 +26,7 @@
 <a name="l00006"></a>00006 <span class="keywordtype">void</span> player_move_all(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h);
 <a name="l00007"></a>00007 <span class="keywordtype">void</span> player_collision(SceneGraphPtr node, <span class="keywordtype">int</span> screen_w, <span class="keywordtype">int</span> screen_h ,SceneGraphPtr tree);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2cube_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2cube_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>cube.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define Cube scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2demonstration_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2demonstration_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2pad_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2pad_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -37,7 +37,7 @@
 <a name="l00017"></a>00017 
 <a name="l00018"></a>00018 <span class="keywordtype">int</span> pad(<span class="keywordtype">int</span> button);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2polygon_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2polygon_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -92,7 +92,7 @@
 <a name="l00072"></a>00072 
 <a name="l00073"></a>00073 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2polygon__pack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2polygon__pack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -61,7 +61,7 @@
 <a name="l00041"></a>00041 
 <a name="l00042"></a>00042 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2scene_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2scene_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2scene__graph__pack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2scene__graph__pack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -61,7 +61,7 @@
 <a name="l00041"></a>00041 
 <a name="l00042"></a>00042 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2sys_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2sys_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -27,7 +27,7 @@
 <a name="l00007"></a>00007 <span class="keywordtype">void</span> rotate(<span class="keywordtype">float</span> *xyz, <span class="keywordtype">float</span> *matrix);
 <a name="l00008"></a>00008 <span class="keywordtype">void</span> translate(<span class="keywordtype">float</span> *xyz, <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -23,7 +23,7 @@
 <a name="l00003"></a>00003 
 <a name="l00004"></a>00004 GLuint SDL_GL_LoadTexture(SDL_Surface *surface, GLfloat *texcoord);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2triangle_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2triangle_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -32,7 +32,7 @@
 <a name="l00012"></a>00012 
 <a name="l00013"></a>00013 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2vertex_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2vertex_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -30,7 +30,7 @@
 <a name="l00010"></a>00010 
 <a name="l00011"></a>00011 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2viewer_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2viewer_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -77,7 +77,7 @@
 <a name="l00057"></a>00057 
 <a name="l00058"></a>00058 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__pack_2xml_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__pack_2xml_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -21,7 +21,7 @@
 <h1>xml.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="keywordtype">char</span> *skip_to_number(<span class="keywordtype">char</span> *cont);
 <a name="l00002"></a>00002 <span class="keywordtype">char</span> *pickup_float(<span class="keywordtype">char</span> *cont, <span class="keywordtype">float</span> *index);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2Func_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2Func_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -35,7 +35,7 @@
 <a name="l00015"></a>00015      TASK_DRAW
 <a name="l00016"></a>00016 };
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2SpanC_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2SpanC_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2SpanPack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2SpanPack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -44,7 +44,7 @@
 <a name="l00024"></a>00024 
 <a name="l00025"></a>00025 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2Span_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2Span_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2cube_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2cube_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>cube.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define Cube scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2cube__big_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2cube__big_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>cube_big.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define Cube scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2demonstration_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2demonstration_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2fb_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2fb_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -123,7 +123,7 @@
 <a name="l00103"></a>00103 <span class="keywordtype">int</span> get_fbdev_addr(<span class="keywordtype">void</span>) {<span class="keywordflow">return</span> 0;}
 <a name="l00104"></a>00104 <span class="preprocessor">#endif </span><span class="comment">/* __linux__ */</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2pad_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2pad_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -37,7 +37,7 @@
 <a name="l00017"></a>00017 
 <a name="l00018"></a>00018 <span class="keywordtype">int</span> pad(<span class="keywordtype">int</span> button);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2polygon_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2polygon_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -100,7 +100,7 @@
 <a name="l00080"></a>00080 };
 <a name="l00081"></a>00081 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2polygon__pack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2polygon__pack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -60,7 +60,7 @@
 <a name="l00040"></a>00040 
 <a name="l00041"></a>00041 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2scene_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2scene_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2scene__graph__pack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2scene__graph__pack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -61,7 +61,7 @@
 <a name="l00041"></a>00041 
 <a name="l00042"></a>00042 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2spe_2Load__Texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2spe_2Load__Texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -40,7 +40,7 @@
 <a name="l00020"></a>00020 
 <a name="l00021"></a>00021 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2sys_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2sys_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -27,7 +27,7 @@
 <a name="l00007"></a>00007 <span class="keywordtype">void</span> rotate(<span class="keywordtype">float</span> *xyz, <span class="keywordtype">float</span> *matrix);
 <a name="l00008"></a>00008 <span class="keywordtype">void</span> translate(<span class="keywordtype">float</span> *xyz, <span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2test_2LoadTexture_2polygon_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2test_2LoadTexture_2polygon_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -47,7 +47,7 @@
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2test_2LoadTexture_2spe_2Load__Texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2test_2LoadTexture_2spe_2Load__Texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -40,7 +40,7 @@
 <a name="l00020"></a>00020 
 <a name="l00021"></a>00021 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2test_2LoadTexture_2viewer_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2test_2LoadTexture_2viewer_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -42,7 +42,7 @@
 <a name="l00022"></a>00022 
 <a name="l00023"></a>00023 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -23,7 +23,7 @@
 <a name="l00003"></a>00003 
 <a name="l00004"></a>00004 GLuint SDL_GL_LoadTexture(SDL_Surface *surface, GLfloat *texcoord);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2triangle_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2triangle_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -32,7 +32,7 @@
 <a name="l00012"></a>00012 
 <a name="l00013"></a>00013 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2vertex_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2vertex_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -30,7 +30,7 @@
 <a name="l00010"></a>00010 
 <a name="l00011"></a>00011 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2viewer_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2viewer_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -71,7 +71,7 @@
 <a name="l00051"></a>00051 
 <a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2viewer__types_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2viewer__types_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -44,7 +44,7 @@
 <a name="l00024"></a>00024 <span class="preprocessor"></span>
 <a name="l00025"></a>00025 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/simple__render_2xml_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/simple__render_2xml_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -21,7 +21,7 @@
 <h1>xml.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="keywordtype">char</span> *skip_to_number(<span class="keywordtype">char</span> *cont);
 <a name="l00002"></a>00002 <span class="keywordtype">char</span> *pickup_float(<span class="keywordtype">char</span> *cont, <span class="keywordtype">float</span> *index);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/span_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/span_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/span__pack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/span__pack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -49,7 +49,7 @@
 <a name="l00029"></a>00029 
 <a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/spe_2CreatePolygon_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/spe_2CreatePolygon_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -34,7 +34,7 @@
 <a name="l00014"></a>00014 
 <a name="l00015"></a>00015 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/spe_2CreateSpan_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/spe_2CreateSpan_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -47,7 +47,7 @@
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/spe_2DrawBack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/spe_2DrawBack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -36,7 +36,7 @@
 <a name="l00016"></a>00016 
 <a name="l00017"></a>00017 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/spe_2DrawSpanRenew_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/spe_2DrawSpanRenew_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/spe_2DrawSpan_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/spe_2DrawSpan_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -83,7 +83,7 @@
 <a name="l00063"></a>00063 
 <a name="l00064"></a>00064 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/spe_2Set__Texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/spe_2Set__Texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -35,7 +35,7 @@
 <a name="l00015"></a>00015 <span class="preprocessor">#endif</span>
 <a name="l00016"></a>00016 <span class="preprocessor"></span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/spe_2TileHash_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/spe_2TileHash_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -49,7 +49,7 @@
 <a name="l00029"></a>00029 <span class="keyword">const</span> <span class="keywordtype">int</span> GLOBAL_TEXTURE_HASH = 0;
 <a name="l00030"></a>00030 <span class="keyword">const</span> <span class="keywordtype">int</span> GLOBAL_TILE_LIST    = 1;
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/sphere_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/sphere_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>sphere.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define Sphere scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/sphere__big_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/sphere__big_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>sphere_big.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define BigSphere scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/spu__span_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/spu__span_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -55,7 +55,7 @@
 <a name="l00035"></a>00035 <span class="comment">*/</span>
 <a name="l00036"></a>00036 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/structtexture__block.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/structtexture__block.html	Fri Jun 05 18:16:31 2009 +0900
@@ -16,6 +16,7 @@
   <div class="tabs">
     <ul>
       <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
       <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
     </ul>
   </div>
@@ -39,10 +40,12 @@
 Rendering 1pass Zbuffer と Texture の有無の判定 if (zbuffer ok) { if (texture ある) { zbuffer 、linebunf に書き込む } else { texture の load list に加える zbuffer だけ更新しておく } } else { 無視 }<p>
 1pass で texture が一杯になったら、中断して ここまでのを書き込んどけ<p>
 2pass rgb の書き込み<p>
-if (zbuffer の値が自分と一緒) { read した texture みて 書き込め! } <hr>The documentation for this struct was generated from the following file:<ul>
+if (zbuffer の値が自分と一緒) { read した texture みて 書き込め! } 
+<p>Definition at line <a class="el" href="Tapestry_8h-source.html#l00073">73</a> of file <a class="el" href="Tapestry_8h-source.html">Tapestry.h</a>.</p>
+<hr>The documentation for this struct was generated from the following file:<ul>
 <li><a class="el" href="Tapestry_8h-source.html">Tapestry.h</a></ul>
 </div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/html/systask__register_8cc-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Cerium: systask_register.cc 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.7.1 -->
+<div class="navigation" id="top">
+  <div class="tabs">
+    <ul>
+      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+    </ul>
+  </div>
+  <div class="tabs">
+    <ul>
+      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
+    </ul>
+  </div>
+<h1>systask_register.cc</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#include "SysTask.h"</span>
+<a name="l00002"></a>00002 
+<a name="l00003"></a>00003 SchedExternTask(Start);
+<a name="l00004"></a>00004 SchedExternTask(Finish);
+<a name="l00005"></a>00005 
+<a name="l00006"></a>00006 <span class="keywordtype">void</span>
+<a name="l00007"></a>00007 systask_register(<span class="keywordtype">void</span>)
+<a name="l00008"></a>00008 {
+<a name="l00009"></a>00009     SchedRegisterTask(SYSTASK_START, Start);
+<a name="l00010"></a>00010     SchedRegisterTask(SYSTASK_FINISH, Finish);
+<a name="l00011"></a>00011 }
+</pre></div></div>
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
+</body>
+</html>
--- a/Document/document/html/task_2CreatePolygon_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/task_2CreatePolygon_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -34,7 +34,7 @@
 <a name="l00014"></a>00014 
 <a name="l00015"></a>00015 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:14 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/task_2CreateSpan_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/task_2CreateSpan_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -47,7 +47,7 @@
 <a name="l00027"></a>00027 
 <a name="l00028"></a>00028 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/task_2DrawBack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/task_2DrawBack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -36,7 +36,7 @@
 <a name="l00016"></a>00016 
 <a name="l00017"></a>00017 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/task_2DrawSpanRenew_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/task_2DrawSpanRenew_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/task_2DrawSpan_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/task_2DrawSpan_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -83,7 +83,7 @@
 <a name="l00063"></a>00063 
 <a name="l00064"></a>00064 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/task_2Set__Texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/task_2Set__Texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -35,7 +35,7 @@
 <a name="l00015"></a>00015 <span class="preprocessor">#endif</span>
 <a name="l00016"></a>00016 <span class="preprocessor"></span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/task_2TileHash_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/task_2TileHash_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -49,7 +49,7 @@
 <a name="l00029"></a>00029 <span class="keyword">const</span> <span class="keywordtype">int</span> GLOBAL_TEXTURE_HASH = 0;
 <a name="l00030"></a>00030 <span class="keyword">const</span> <span class="keywordtype">int</span> GLOBAL_TILE_LIST    = 1;
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2Func_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2Func_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -42,7 +42,7 @@
 <a name="l00022"></a>00022      TASK_DUMMY,
 <a name="l00023"></a>00023 };
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2SpanC_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2SpanC_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2SpanPack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2SpanPack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -72,7 +72,7 @@
 <a name="l00052"></a>00052 
 <a name="l00053"></a>00053 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2Span_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2Span_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -94,7 +94,7 @@
 <a name="l00074"></a>00074 
 <a name="l00075"></a>00075 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2demonstration_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2demonstration_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2fb_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2fb_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -110,7 +110,7 @@
 <a name="l00090"></a>00090 
 <a name="l00091"></a>00091 <span class="keyword">extern</span> <span class="keywordtype">int</span> get_fbdev_addr(<span class="keywordtype">void</span>);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2polygon_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2polygon_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -81,7 +81,7 @@
 <a name="l00061"></a>00061 
 <a name="l00062"></a>00062 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2polygon__pack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2polygon__pack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -87,7 +87,7 @@
 <a name="l00067"></a>00067 
 <a name="l00068"></a>00068 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2scene_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2scene_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 <a name="l00019"></a>00019 
 <a name="l00020"></a>00020 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2scene__graph__pack_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2scene__graph__pack_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -96,7 +96,7 @@
 <a name="l00076"></a>00076 
 <a name="l00077"></a>00077 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2spe_2Load__Texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2spe_2Load__Texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -38,7 +38,7 @@
 <a name="l00018"></a>00018 
 <a name="l00019"></a>00019 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2spe_2texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2spe_2texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -22,7 +22,7 @@
 <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define TEXTURE_ID 0</span>
 <a name="l00003"></a>00003 <span class="preprocessor"></span><span class="preprocessor">#define TEXTURE2_ID 13</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2sys_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2sys_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -38,7 +38,7 @@
 <a name="l00018"></a>00018 <span class="keywordtype">void</span> unitMatrix(<span class="keywordtype">float</span> *m);
 <a name="l00019"></a>00019 <span class="keywordtype">void</span> transMatrix(<span class="keywordtype">float</span> *m0, <span class="keywordtype">float</span> *m1, <span class="keywordtype">float</span> *v);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2task_2Load__Texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2task_2Load__Texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -38,7 +38,7 @@
 <a name="l00018"></a>00018 
 <a name="l00019"></a>00019 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2task_2texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2task_2texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -22,7 +22,7 @@
 <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define TEXTURE_ID 0</span>
 <a name="l00003"></a>00003 <span class="preprocessor"></span><span class="preprocessor">#define TEXTURE2_ID 13</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2texture_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2texture_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -36,7 +36,7 @@
 <a name="l00016"></a>00016 
 <a name="l00017"></a>00017 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2triangle_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2triangle_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -32,7 +32,7 @@
 <a name="l00012"></a>00012 
 <a name="l00013"></a>00013 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2vertex_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2vertex_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -30,7 +30,7 @@
 <a name="l00010"></a>00010 
 <a name="l00011"></a>00011 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2viewer_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2viewer_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -64,7 +64,7 @@
 <a name="l00044"></a>00044 <span class="preprocessor"></span>
 <a name="l00045"></a>00045 <span class="preprocessor">#define default_sdl_flag SDL_INIT_TIMER | SDL_INIT_JOYSTICK</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2viewer__types_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2viewer__types_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -52,7 +52,7 @@
 <a name="l00032"></a>00032 
 <a name="l00033"></a>00033 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2xml_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2xml_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -21,7 +21,7 @@
 <h1>xml.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="keywordtype">char</span> *skip_to_number(<span class="keywordtype">char</span> *cont);
 <a name="l00002"></a>00002 <span class="keywordtype">char</span> *pickup_float(<span class="keywordtype">char</span> *cont, <span class="keywordtype">float</span> *index);
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2xml__file_2cube_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2xml__file_2cube_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>cube.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define Cube scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/test__render_2xml__file_2cube__big_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/test__render_2xml__file_2cube__big_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -20,7 +20,7 @@
   </div>
 <h1>cube_big.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define BigCube scene_graph</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/types_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/types_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -70,7 +70,7 @@
 <a name="l00050"></a>00050 
 <a name="l00051"></a>00051 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/universe_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/universe_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -21,7 +21,7 @@
 <h1>universe.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#define Earth scene_graph</span>
 <a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define Moon scene_graph-&gt;next</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/viewerFB_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/viewerFB_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -37,7 +37,7 @@
 <a name="l00017"></a>00017 
 <a name="l00018"></a>00018 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/html/viewerSDL_8h-source.html	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/html/viewerSDL_8h-source.html	Fri Jun 05 18:16:31 2009 +0900
@@ -42,7 +42,7 @@
 <a name="l00022"></a>00022 
 <a name="l00023"></a>00023 <span class="preprocessor">#endif</span>
 </pre></div></div>
-<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:05:15 2009 for Cerium by&nbsp;
+<hr size="1"><address style="text-align: right;"><small>Generated on Fri Jun 5 18:14:06 2009 for Cerium by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
 </body>
--- a/Document/document/latex/annotated.tex	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/latex/annotated.tex	Fri Jun 05 18:16:31 2009 +0900
@@ -1,5 +1,6 @@
 \section{Class List}
 Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList}
+\item\contentsline{section}{\hyperlink{classBufferManager}{BufferManager} }{\pageref{classBufferManager}}{}
 \item\contentsline{section}{\hyperlink{structtexture__block}{texture\_\-block} }{\pageref{structtexture__block}}{}
 \item\contentsline{section}{\hyperlink{classTileList}{TileList} }{\pageref{classTileList}}{}
 \end{CompactList}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/latex/classBufferManager.tex	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,95 @@
+\hypertarget{classBufferManager}{
+\section{BufferManager Class Reference}
+\label{classBufferManager}\index{BufferManager@{BufferManager}}
+}
+{\tt \#include $<$BufferManager.h$>$}
+
+Inherited by CellBufferManager.
+
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item 
+\hypertarget{classBufferManager_9f6520c0cb5b2546fa5c0a0357c75c9f}{
+\textbf{BufferManager} (int num=1)}
+\label{classBufferManager_9f6520c0cb5b2546fa5c0a0357c75c9f}
+
+\item 
+\hypertarget{classBufferManager_1795106aa9914c8089d6ea2c8e171a5d}{
+virtual void \textbf{init} (void)}
+\label{classBufferManager_1795106aa9914c8089d6ea2c8e171a5d}
+
+\item 
+\hypertarget{classBufferManager_9dd8ede25545cff6ab9e1bb6936967d1}{
+TaskListPtr \textbf{create\_\-taskList} (void)}
+\label{classBufferManager_9dd8ede25545cff6ab9e1bb6936967d1}
+
+\item 
+\hypertarget{classBufferManager_38d9adc627d38c5aad0d9b36062df029}{
+void \textbf{free\_\-taskList} (TaskListPtr)}
+\label{classBufferManager_38d9adc627d38c5aad0d9b36062df029}
+
+\item 
+\hypertarget{classBufferManager_a83740aaeb16b56dbb944d5549e7dfb1}{
+TaskListPtr \textbf{clear\_\-taskList} (TaskListPtr)}
+\label{classBufferManager_a83740aaeb16b56dbb944d5549e7dfb1}
+
+\item 
+\hypertarget{classBufferManager_020b8ed41ae771ab4a80e0ac36cbd439}{
+TaskQueuePtr \textbf{create\_\-taskQueue} (HTaskPtr)}
+\label{classBufferManager_020b8ed41ae771ab4a80e0ac36cbd439}
+
+\item 
+\hypertarget{classBufferManager_1c978e7795a045a278f1e9277756d0dd}{
+void \textbf{free\_\-taskQueue} (TaskQueuePtr)}
+\label{classBufferManager_1c978e7795a045a278f1e9277756d0dd}
+
+\item 
+\hypertarget{classBufferManager_91144fbb6e48dd52792073d8e41795a6}{
+HTaskPtr \textbf{create\_\-task} (int cmd)}
+\label{classBufferManager_91144fbb6e48dd52792073d8e41795a6}
+
+\item 
+\hypertarget{classBufferManager_0254144c5bc89574d57073a5b4443004}{
+void \textbf{free\_\-task} (HTaskPtr)}
+\label{classBufferManager_0254144c5bc89574d57073a5b4443004}
+
+\item 
+\hypertarget{classBufferManager_0e90929562369d98573b1dc1d97506e7}{
+void \textbf{finish} (void)}
+\label{classBufferManager_0e90929562369d98573b1dc1d97506e7}
+
+\end{CompactItemize}
+\subsection*{Public Attributes}
+\begin{CompactItemize}
+\item 
+\hypertarget{classBufferManager_d2b213a2bece5dcd3441d3270937cd0b}{
+TaskListInfo $\ast$ \textbf{taskListImpl}}
+\label{classBufferManager_d2b213a2bece5dcd3441d3270937cd0b}
+
+\item 
+\hypertarget{classBufferManager_7df679af7bea986434fc60ce81c3bd6b}{
+TaskQueueInfo $\ast$ \textbf{taskQueueImpl}}
+\label{classBufferManager_7df679af7bea986434fc60ce81c3bd6b}
+
+\item 
+\hypertarget{classBufferManager_046658d075870d6c14c4ccb8d91f71b8}{
+HTaskInfo $\ast$ \textbf{htaskImpl}}
+\label{classBufferManager_046658d075870d6c14c4ccb8d91f71b8}
+
+\item 
+\hypertarget{classBufferManager_7df9fcae63365f7b0217726a72ce258a}{
+int \textbf{machineNum}}
+\label{classBufferManager_7df9fcae63365f7b0217726a72ce258a}
+
+\end{CompactItemize}
+
+
+\subsection{Detailed Description}
+Task Input/Output buffer manager 
+
+Definition at line 25 of file BufferManager.h.
+
+The documentation for this class was generated from the following files:\begin{CompactItemize}
+\item 
+BufferManager.h\item 
+BufferManager.cc\end{CompactItemize}
--- a/Document/document/latex/classTileList.tex	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/latex/classTileList.tex	Fri Jun 05 18:16:31 2009 +0900
@@ -34,6 +34,8 @@
 \subsection{Detailed Description}
 \hyperlink{classTileList}{TileList} 中の Tile の追い出しは、現在 FIFO で実装している 
 
+Definition at line 88 of file Tapestry.h.
+
 \subsection{Member Function Documentation}
 \hypertarget{classTileList_81f144e0c87ba9a92c8e4a10990caeb5}{
 \index{TileList@{TileList}!clear@{clear}}
@@ -42,7 +44,9 @@
 \label{classTileList_81f144e0c87ba9a92c8e4a10990caeb5}
 
 
-\hyperlink{classTileList}{TileList} のクリア //tile 自体は clear する必要は無い あるかもしれない \hypertarget{classTileList_e74c2d4e781fdde223961c00d75a791c}{
+\hyperlink{classTileList}{TileList} のクリア //tile 自体は clear する必要は無い あるかもしれない 
+
+Definition at line 117 of file Tapestry.h.\hypertarget{classTileList_e74c2d4e781fdde223961c00d75a791c}{
 \index{TileList@{TileList}!nextTile@{nextTile}}
 \index{nextTile@{nextTile}!TileList@{TileList}}
 \subsubsection[{nextTile}]{\setlength{\rightskip}{0pt plus 5cm}TilePtr TileList::nextTile (void)\hspace{0.3cm}{\tt  \mbox{[}inline\mbox{]}}}}
@@ -55,6 +59,8 @@
 \item[Returns:]tile\end{Desc}
 tile\mbox{[}\mbox{]} をリングバスっぽく扱うことで FIFO を実現することに。 
 
+Definition at line 106 of file Tapestry.h.
+
 The documentation for this class was generated from the following file:\begin{CompactItemize}
 \item 
 Tapestry.h\end{CompactItemize}
--- a/Document/document/latex/doxygen.sty	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/latex/doxygen.sty	Fri Jun 05 18:16:31 2009 +0900
@@ -10,8 +10,8 @@
         {\fancyplain{}{\bfseries\rightmark}}
 \rhead[\fancyplain{}{\bfseries\leftmark}]
         {\fancyplain{}{\bfseries\thepage}}
-\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Fri Jun 5 18:05:14 2009 for Cerium by Doxygen }]{}
-\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Jun 5 18:05:14 2009 for Cerium by Doxygen }}
+\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Fri Jun 5 18:14:05 2009 for Cerium by Doxygen }]{}
+\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Jun 5 18:14:05 2009 for Cerium by Doxygen }}
 \cfoot{}
 \newenvironment{Code}
 {\footnotesize}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Document/document/latex/hierarchy.tex	Fri Jun 05 18:16:31 2009 +0900
@@ -0,0 +1,6 @@
+\section{Class Hierarchy}
+This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList}
+\item \contentsline{section}{BufferManager}{\pageref{classBufferManager}}{}
+\item \contentsline{section}{texture\_\-block}{\pageref{structtexture__block}}{}
+\item \contentsline{section}{TileList}{\pageref{classTileList}}{}
+\end{CompactList}
--- a/Document/document/latex/refman.tex	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/latex/refman.tex	Fri Jun 05 18:16:31 2009 +0900
@@ -39,7 +39,7 @@
 \vspace*{1cm}
 {\large Generated by Doxygen 1.5.7.1}\\
 \vspace*{0.5cm}
-{\small Fri Jun 5 18:05:14 2009}\\
+{\small Fri Jun 5 18:14:05 2009}\\
 \end{center}
 \end{titlepage}
 \clearemptydoublepage
@@ -48,9 +48,12 @@
 \clearemptydoublepage
 \pagenumbering{arabic}
 \chapter{Class Index}
+\input{hierarchy}
+\chapter{Class Index}
 \input{annotated}
 \chapter{Class Documentation}
-\input{structtexture__block}
+\input{classBufferManager}
+\include{structtexture__block}
 \include{classTileList}
 \printindex
 \end{document}
--- a/Document/document/latex/structtexture__block.tex	Fri Jun 05 18:05:46 2009 +0900
+++ b/Document/document/latex/structtexture__block.tex	Fri Jun 05 18:16:31 2009 +0900
@@ -33,6 +33,8 @@
 
 if (zbuffer の値が自分と一緒) \{ read した texture みて 書き込め! \} 
 
+Definition at line 73 of file Tapestry.h.
+
 The documentation for this struct was generated from the following file:\begin{CompactItemize}
 \item 
 Tapestry.h\end{CompactItemize}
--- a/TaskManager/Cell/CellTaskManagerImpl.cc	Fri Jun 05 18:05:46 2009 +0900
+++ b/TaskManager/Cell/CellTaskManagerImpl.cc	Fri Jun 05 18:16:31 2009 +0900
@@ -221,7 +221,7 @@
 		     * Ǥ TaskList  allocate(new) ϿƤ
 		     */
 
-		    speThreads->add_output_tasklist(command, alloc_info[1], alloc_size);
+		    speThreads->add_output_tasklist(command, (void*)alloc_info[1], alloc_size);
 
 		    speThreads->send_mail(id, 2, alloc_info);
 		} else if (data > MY_SPE_NOP) {
--- a/TaskManager/Doxyfile	Fri Jun 05 18:05:46 2009 +0900
+++ b/TaskManager/Doxyfile	Fri Jun 05 18:16:31 2009 +0900
@@ -623,7 +623,7 @@
 # commands irrespective of the value of the RECURSIVE tag. 
 # Possible values are YES and NO. If left blank NO is used.
 
-EXAMPLE_RECURSIVE      = NO
+EXAMPLE_RECURSIVE      = YES
 
 # The IMAGE_PATH tag can be used to specify one or more files or 
 # directories that contain image that are included in the documentation (see 
@@ -665,7 +665,7 @@
 # Note: To get rid of all source code in the generated output, make sure also 
 # VERBATIM_HEADERS is set to NO.
 
-SOURCE_BROWSER         = NO
+SOURCE_BROWSER         = YES
 
 # Setting the INLINE_SOURCES tag to YES will include the body 
 # of functions and classes directly in the documentation.
--- a/example/many_task/Makefile.def	Fri Jun 05 18:05:46 2009 +0900
+++ b/example/many_task/Makefile.def	Fri Jun 05 18:16:31 2009 +0900
@@ -1,9 +1,13 @@
 TARGET = sort
 
 # include/library path
-# ex: macosx
+# ex  macosx
 #CERIUM = /Users/gongo/Source/Concurrency/Game_project/Cerium
 
+<<<<<<< /home/teacher/kono/src/Cerium/example/many_task/Makefile.def
+# ex  linux/ps3
+CERIUM = ../../../Cerium
+=======
 # ex: linux/ps3
 CERIUM = ../../../Cerium
 
@@ -12,3 +16,4 @@
 
 INCLUDE = -I${CERIUM}/include/TaskManager -I. -I..
 LIBS = -L${CERIUM}/TaskManager
+>>>>>>> /tmp/Makefile.def~other.2eIJvO
--- a/example/many_task/spe/Makefile	Fri Jun 05 18:05:46 2009 +0900
+++ b/example/many_task/spe/Makefile	Fri Jun 05 18:16:31 2009 +0900
@@ -23,4 +23,4 @@
 
 clean:
 	rm -f $(TARGET) $(OBJS)
-	rm -f *~ \#*
\ No newline at end of file
+	rm -f *~ \#*
--- a/example/many_task/spe/spe-main.cc	Fri Jun 05 18:05:46 2009 +0900
+++ b/example/many_task/spe/spe-main.cc	Fri Jun 05 18:16:31 2009 +0900
@@ -7,8 +7,15 @@
  * この関数は SpeScheduler から呼ばれるので
  * 必ずこの関数名でお願いします。
  */
+
+static void 
+spe_debug() 
+{
+}
+
 void
 task_init(void)
 {
+    spe_debug();
     SchedRegisterTask(QUICK_SORT, QuickSort);
 }
--- a/include/TaskManager/BufferManager.h	Fri Jun 05 18:05:46 2009 +0900
+++ b/include/TaskManager/BufferManager.h	Fri Jun 05 18:16:31 2009 +0900
@@ -17,6 +17,11 @@
 #  include "HTaskInfo.h"
 #endif
 
+/*!
+ *   Task Input/Output buffer manager
+ *
+ */
+
 class BufferManager {
 public:
     /* constructor */
--- a/include/TaskManager/Scheduler.h	Fri Jun 05 18:05:46 2009 +0900
+++ b/include/TaskManager/Scheduler.h	Fri Jun 05 18:16:31 2009 +0900
@@ -110,6 +110,8 @@
     void* mainMemList[MAX_MAINMEM_AREA];
 
     // Task Object Table
+    //  this is named TaskObject but it is not an object.
+    //  It is a pointer to an object creation function
     typedef SchedTask* (*TaskObject)(void);
 
     DmaManager* connector;