diff TaskManager/kernel/ppe/TaskManager.cc @ 109:5c194c71eca8

Cerium cvs version
author gongo@gendarme.local
date Wed, 12 Nov 2008 17:39:33 +0900
parents 3e331f7576a1
children 72dcf908ec52
line wrap: on
line diff
--- a/TaskManager/kernel/ppe/TaskManager.cc	Wed Nov 12 17:29:35 2008 +0900
+++ b/TaskManager/kernel/ppe/TaskManager.cc	Wed Nov 12 17:39:33 2008 +0900
@@ -1,23 +1,22 @@
 #include "TaskManager.h"
-#include "SymTable.h"
 
 TaskManager::TaskManager(int num) : machineNum(num) {}
 
 /**
  * create_impl(int);
  *
- * [cell版] ../../Cell/SpeTaskManagerImpl.cpp
- * [fifo版] ../../Fifo/FifoTaskManagerImpl.cpp
- * で定義されています。コンパイル時に
+ * [cell] ../../Cell/CellTaskManagerImpl.cpp
+ * [fifo] ../../Fifo/FifoTaskManagerImpl.cpp
+ * у臂障潟潟ゃ
  *
- * % make cell ってすると cell 版が、
- * % make fifo ってすると fifo 版 がリンクされるようにしているので
- * それに応じて create_impl が返す値を変えています。
- * cell だったら SpeManagerImpl, fifo だったら FifoManagerImpl です。
+ * % make cell c cell 
+ * % make fifo c fifo  潟
+ * 綽 create_impl 菴ゃ紊障
+ * cell c CellManagerImpl, fifo c FifoManagerImpl с
  *
- * 今までは ifdef CELL とか書いてましたわ。どっちがいいかね
+ * 篁障с ifdef CELL 吾障c<
  *
- * てか、普通に TaskManagerImpl に関数持たせた方が早いか・・・?
+ *  TaskManagerImpl ∽井鴻祉祉誌
  */
 extern TaskManagerImpl* create_impl(int);
 
@@ -26,117 +25,28 @@
 {
     m_impl = create_impl(machineNum);
     m_impl->init();
-
-    symtb = new SymTable;
-    symtb->init();
+    m_impl->systask_init();
 }
 
 void
 TaskManager::finish(void)
 {
     delete m_impl;
-    delete symtb;
 }
 
 /**
- * @param command   Task executes method number
- * @param in_size   Size of data 
- * @param in_addr   Input address of data
- * @param out_addr  Output address of data
- * @param func      When this task ends, func execute.
+ * @param [command]   Task executes method number
  *
  * @return this task
  */
-
 HTaskPtr
-//TaskManager::create_task(int cmd, int size, DmaBuffer *in,
-//			 DmaBuffer *out, void (*func)(void))
-TaskManager::create_task(int cmd, int size, unsigned int in,
-			 unsigned int out, void (*func)(void))
+TaskManager::create_task(int cmd)
 {
-    return m_impl->create_task(cmd, size, in, out, func);
+    return m_impl->create_task(cmd);
 }
 
-/**
- * TaskManager を介してではなく、
- * HTask から直接呼べるようにしたので不要に
- *
- * obsolute API
- *   manager->set_task_depend(master, slave);
- * new API
- *   slave->set_depend(master);
- */
-#if 0
-void
-TaskManager::set_task_depend(HTaskPtr master, HTaskPtr slave)
-{
-    m_impl->set_task_depend(master, slave);
-}
-
-void
-TaskManager::spawn_task(HTaskPtr task)
-{
-    m_impl->spawn_task(task);
-}
-#endif
-
 void
 TaskManager::run(void)
 {
     m_impl->run();
 }
-
-/**
- * initialize task だから(?)、
- * read/write/post/func はなしって最初から決めうちだけど
- * いいのかな。いいのか?
- */
-void
-TaskManager::set_init_task(const char *sym)
-{
-    HTaskPtr init;
-    int init_fd;
-
-    init_fd = open(sym);
-    init =  m_impl->create_task(init_fd, 0, 0, 0, 0);
-    m_impl->spawn_task(init);
-}
-
-
-// ここは、バイナリから自動的に読めるとうれしいけど
-// どうやるんだろうね。ユーザに追加させるのはめんどくさい
-void
-TaskManager::set_symbol(const char *sym, SymTable::FuncObject addr)
-{
-    symtb->set_symbol(sym, addr);
-}
-
-void
-TaskManager::set_func(int id, SymTable::FuncObject addr)
-{
-    symtb->set_func(id, addr);
-}
-
-/**
- * open というか、今は topen (task open) ? 違うな
- */
-int
-TaskManager::open(const char *sym)
-{
-    return symtb->get_fd(sym);
-}
-
-SymTable::FuncObject
-TaskManager::get_address(int fd)
-{
-    return symtb->get_address(fd);
-}
-
-/**
- * 型名指定するには template だけど...
- */
-DmaBuffer*
-TaskManager::allocate(int size)
-{
-    return m_impl->allocate(size);
-}