changeset 1227:bb75ee244826 draft

exile free on fifo
author Daichi TOMA <e085740@ie.u-ryukyu.ac.jp>
date Tue, 02 Aug 2011 06:52:08 +0900
parents 636dfdc30176
children 98094b0f1b01
files TaskManager/Fifo/FifoDmaManager.h TaskManager/kernel/ppe/TaskManagerImpl.cc TaskManager/kernel/schedule/SchedTask.cc
diffstat 3 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/TaskManager/Fifo/FifoDmaManager.h	Sun Jul 31 10:20:46 2011 +0900
+++ b/TaskManager/Fifo/FifoDmaManager.h	Tue Aug 02 06:52:08 2011 +0900
@@ -35,7 +35,7 @@
     }
 
     /* functions */
-    void *dma_load(Scheduler *s, void *buf, memaddr addr, uint32 size, uint32 mask);
+    virtual void *dma_load(Scheduler *s, void *buf, memaddr addr, uint32 size, uint32 mask);
     void *dma_store(void *buf, memaddr addr, uint32 size, uint32 mask);
     void dma_wait(uint32 mask) ;
     void *get_writebuf(Scheduler *s, memaddr addr, uint32 size) ;
--- a/TaskManager/kernel/ppe/TaskManagerImpl.cc	Sun Jul 31 10:20:46 2011 +0900
+++ b/TaskManager/kernel/ppe/TaskManagerImpl.cc	Tue Aug 02 06:52:08 2011 +0900
@@ -295,9 +295,13 @@
     // TaskArray1 の場合、Task,rbuf共にtasklistに入る。
     // tasklistはどこかでfreeされてるはずなので、メモリリークしない。
     // TaskArray の rbuf はfreeされない見たいなので、ここでfreeしてみる。
+	
+#ifdef __CERIUM_FIFO__
+#else
     if (me->command == TaskArray) {
         free(me->rbuf);
     }
+#endif
 
     // me を誰かが持っていて、me が finish した後に、
     // me->wait_for(i) とか、やられると気まずい。
--- a/TaskManager/kernel/schedule/SchedTask.cc	Sun Jul 31 10:20:46 2011 +0900
+++ b/TaskManager/kernel/schedule/SchedTask.cc	Tue Aug 02 06:52:08 2011 +0900
@@ -95,7 +95,11 @@
     }
     connector->dma_wait(DMA_READ + this->tag);
     run(this, readbuf, writebuf);
+#ifdef __CERIUM_FIFO__
+#else
     free(readbuf);
+#endif
+	
 
     // 書き込む領域がなければ無視