Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Cell/spe/CellDmaManager.h @ 672:3b6290c05f9f
add profiling code
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 05 Dec 2009 20:20:08 +0900 |
parents | 8843edf37c0e |
children | 45ddb28c592d |
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 | |
32 | 12 class CellDmaManager : public DmaManager { |
13 public: | |
109 | 14 BASE_NEW_DELETE(CellDmaManager); |
15 | |
88 | 16 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
|
17 uint32 addr; // should be memaddr, but in Cell's specification... |
88 | 18 uint32 size; |
19 } DmaList, *DmaListPtr; | |
20 | |
672 | 21 |
22 CellDmaManager() ; | |
23 | |
88 | 24 /* variables */ |
273 | 25 unsigned int wait_time, busy_time; |
26 unsigned long long global_busy_time, global_wait_time; | |
88 | 27 |
32 | 28 /* functions */ |
364 | 29 void dma_load(void *buf, memaddr addr, uint32 size, uint32 mask); |
365 | 30 void dma_store(void *buf, memaddr addr, uint32 size, uint32 mask); |
88 | 31 void dma_wait(uint32 mask) ; |
672 | 32 void (CellDmaManager::*start_dmawait_profile)(); |
33 void (CellDmaManager::*end_dmawait_profile)(); | |
34 void start_profile(); | |
35 void stop_profile(); | |
36 | |
37 | |
255 | 38 void show_dma_wait(int cpu); |
88 | 39 |
611 | 40 void mail_write(memaddr data); |
41 memaddr mail_read(); | |
109 | 42 void dma_loadList(ListDataPtr list, void *buff, uint32 mask); |
43 void dma_storeList(ListDataPtr, void *buff, uint32 mask); | |
672 | 44 |
45 private: | |
46 | |
47 void do_start_dmawait_profile(); | |
48 void do_end_dmawait_profile(); | |
49 void null_start_dmawait_profile(); | |
50 void null_end_dmawait_profile(); | |
51 | |
52 | |
53 /* end */ | |
32 | 54 }; |
55 | |
56 #endif |