Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Cell/spe/CellDmaManager.h @ 899:586b4f825f24
minor fix..
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 16 Jul 2010 22:20:02 +0900 |
parents | bed529c55eda |
children | 33630c6ff445 |
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; |
895
bed529c55eda
add alignment of classes in SPU
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
736
diff
changeset
|
21 } __attribute__ ((aligned (DEFAULT_ALIGNMENT))) DmaList, *DmaListPtr; |
88 | 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 */ | |
899 | 56 } ; |
32 | 57 |
58 #endif |