diff TaskManager/Cell/spe/CellDmaManager.cc @ 1221:2a4ba6366394 draft

fix CellDmaManager
author Daichi TOMA <amothic@cr.ie.u-ryukyu.ac.jp>
date Sat, 23 Jul 2011 07:16:53 +0900
parents a49c02dffe6f
children 2187bd10f16d
line wrap: on
line diff
--- a/TaskManager/Cell/spe/CellDmaManager.cc	Sat Jul 23 06:22:06 2011 +0900
+++ b/TaskManager/Cell/spe/CellDmaManager.cc	Sat Jul 23 07:16:53 2011 +0900
@@ -20,11 +20,11 @@
     if ((unsigned long)addr&0xf) {
       //s->printf("dma_load is not aligned. addr = 0x%lx, size = %d\n",
       //     (unsigned long)addr, size);
-      return ;
+      return buf;
     }
   
-    if (size == 0) return ;
-    if (s) buf = s->allocate(size);
+    if (size == 0) return buf;
+    if (s) buf = s->manager->allocate(size);
 
     mfc_get((volatile void *)buf, addr, size, mask, 0, 0);
     return buf;
@@ -33,7 +33,7 @@
 void *
 CellDmaManager::get_writebuf(Scheduler *s,memaddr addr, uint32 size)
 {
-    void *b = s->allocaet(size);
+    void *b = s->manager->allocate(size);
     return b;
 }
 
@@ -45,10 +45,11 @@
  * @param[in] size Size of Store Data
  * @param[in] mask DMA tag
 */
-void CellDmaManager::dma_store(void *buf, memaddr addr, uint32 size, uint32 mask)
+void* CellDmaManager::dma_store(Scheduler *s,void *buf, memaddr addr, uint32 size, uint32 mask)
 {
-    if (size == 0) return ;
+    if (size == 0) return buf;
     mfc_put((volatile void *)buf, addr, size, mask, 0, 0);
+	return buf; 
 }
 
 void CellDmaManager::dma_wait(uint32 mask)
@@ -197,7 +198,7 @@
 
 void *CellDmaManager::dma_loadList(Scheduler *s, ListDataPtr list, void *buff, uint32 mask)
 {
-    buff = s->allocate(list->size);
+    buff = s->manager->allocate(list->size);
 
     mfc_getl(buff, 0, list->element, sizeof(mfc_list_element_t)*list->length,
 	     mask, 0, 0);
@@ -213,7 +214,7 @@
 void *
 CellDmaManager::get_writebuf(Scheduler *s,ListDataPtr addr, uint32 size)
 {
-    void *b = s->allocate(addr->size);
+    void *b = s->manager->allocate(addr->size);
     return b;
 }