Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Cell/spe/CellDmaManager.h @ 736:31d0a5baafdf
cut printf
author | hiroki@localhost.localdomain |
---|---|
date | Sun, 27 Dec 2009 20:39:33 +0900 |
parents | a06eef665c45 |
children | bed529c55eda |
rev | line source |
---|---|
32 | 1 #ifndef INCLUDED_CELL_DMA_MANAGER |
2 #define INCLUDED_CELL_DMA_MANAGER | |
3 | |
307 | 4 #include "base.h" |
611 | 5 #include "types.h" |
307 | 6 #include "DmaManager.h" |
32 | 7 |
88 | 8 #include <spu_mfcio.h> |
9 | |
242 | 10 #define SPU_PROFILE 1 |
11 | |
736 | 12 class Scheduler; |
13 | |
32 | 14 class CellDmaManager : public DmaManager { |
15 public: | |
109 | 16 BASE_NEW_DELETE(CellDmaManager); |
17 | |
88 | 18 typedef struct dma_list { |
629
8843edf37c0e
Cell 64 bit tried, but not yet worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
611
diff
changeset
|
19 uint32 addr; // should be memaddr, but in Cell's specification... |
88 | 20 uint32 size; |
21 } DmaList, *DmaListPtr; | |
22 | |
672 | 23 |
24 CellDmaManager() ; | |
25 | |
88 | 26 /* variables */ |
273 | 27 unsigned int wait_time, busy_time; |
675 | 28 unsigned long long global_busy_time, global_wait_time, global_mail_time; |
88 | 29 |
32 | 30 /* functions */ |
364 | 31 void dma_load(void *buf, memaddr addr, uint32 size, uint32 mask); |
365 | 32 void dma_store(void *buf, memaddr addr, uint32 size, uint32 mask); |
88 | 33 void dma_wait(uint32 mask) ; |
672 | 34 void (CellDmaManager::*start_dmawait_profile)(); |
676 | 35 void (CellDmaManager::*end_dmawait_profile)(unsigned long long *counter); |
672 | 36 void start_profile(); |
37 void stop_profile(); | |
38 | |
39 | |
736 | 40 void show_dma_wait(Scheduler *s, int cpu); |
88 | 41 |
611 | 42 void mail_write(memaddr data); |
43 memaddr mail_read(); | |
109 | 44 void dma_loadList(ListDataPtr list, void *buff, uint32 mask); |
45 void dma_storeList(ListDataPtr, void *buff, uint32 mask); | |
672 | 46 |
47 private: | |
48 | |
49 void do_start_dmawait_profile(); | |
676 | 50 void do_end_dmawait_profile(unsigned long long *counter); |
672 | 51 void null_start_dmawait_profile(); |
676 | 52 void null_end_dmawait_profile(unsigned long long *counter); |
672 | 53 |
54 | |
55 /* end */ | |
32 | 56 }; |
57 | |
58 #endif |