comparison TaskManager/Cell/spe/CellDmaManager.h @ 1007:18a548c337cb

add mail_queue
author yutaka@localhost.localdomain
date Thu, 28 Oct 2010 08:39:19 +0900
parents 61f33945f85d
children c67379f9d411
comparison
equal deleted inserted replaced
1006:443c01049702 1007:18a548c337cb
2 #define INCLUDED_CELL_DMA_MANAGER 2 #define INCLUDED_CELL_DMA_MANAGER
3 3
4 #include "base.h" 4 #include "base.h"
5 #include "types.h" 5 #include "types.h"
6 #include "DmaManager.h" 6 #include "DmaManager.h"
7 #include "QueueInfo.h"
8 #include "MailQueue.h"
7 9
8 #include <spu_mfcio.h> 10 #include <spu_mfcio.h>
11 #include <spu_intrinsics.h>
9 12
10 #define SPU_PROFILE 1 13 #define SPU_PROFILE 1
11 14
12 class Scheduler; 15 class Scheduler;
13 16
18 typedef struct dma_list { 21 typedef struct dma_list {
19 uint32 addr; // should be memaddr, but in Cell's specification... 22 uint32 addr; // should be memaddr, but in Cell's specification...
20 uint32 size; 23 uint32 size;
21 } __attribute__ ((aligned (DEFAULT_ALIGNMENT))) DmaList, *DmaListPtr; 24 } __attribute__ ((aligned (DEFAULT_ALIGNMENT))) DmaList, *DmaListPtr;
22 25
26 QueueInfo<MailQueue> mail_queue;
23 27
24 CellDmaManager() ; 28 CellDmaManager() ;
25 29
26 /* variables */ 30 /* variables */
27 unsigned int wait_time, busy_time, alloc_busy_time; 31 unsigned int wait_time, busy_time, alloc_busy_time;
40 44
41 45
42 void show_dma_wait(Scheduler *s, int cpu); 46 void show_dma_wait(Scheduler *s, int cpu);
43 47
44 void mail_write(memaddr data); 48 void mail_write(memaddr data);
49 void mail_write_queue(memaddr data);
50 void mail_write_finish_list(memaddr data);
45 memaddr mail_read(); 51 memaddr mail_read();
46 void dma_loadList(ListDataPtr list, void *buff, uint32 mask); 52 void dma_loadList(ListDataPtr list, void *buff, uint32 mask);
47 void dma_storeList(ListDataPtr, void *buff, uint32 mask); 53 void dma_storeList(ListDataPtr, void *buff, uint32 mask);
48 54
49 private: 55 private: