Mercurial > hg > Members > kono > Cerium
diff 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 |
line wrap: on
line diff
--- a/TaskManager/Cell/spe/CellDmaManager.h Sat Dec 05 17:26:58 2009 +0900 +++ b/TaskManager/Cell/spe/CellDmaManager.h Sat Dec 05 20:20:08 2009 +0900 @@ -18,6 +18,9 @@ uint32 size; } DmaList, *DmaListPtr; + + CellDmaManager() ; + /* variables */ unsigned int wait_time, busy_time; unsigned long long global_busy_time, global_wait_time; @@ -26,14 +29,28 @@ void dma_load(void *buf, memaddr addr, uint32 size, uint32 mask); void dma_store(void *buf, memaddr addr, uint32 size, uint32 mask); void dma_wait(uint32 mask) ; - void start_dmawait_profile(); - void end_dmawait_profile(); + void (CellDmaManager::*start_dmawait_profile)(); + void (CellDmaManager::*end_dmawait_profile)(); + void start_profile(); + void stop_profile(); + + void show_dma_wait(int cpu); void mail_write(memaddr data); memaddr mail_read(); void dma_loadList(ListDataPtr list, void *buff, uint32 mask); void dma_storeList(ListDataPtr, void *buff, uint32 mask); + + private: + + void do_start_dmawait_profile(); + void do_end_dmawait_profile(); + void null_start_dmawait_profile(); + void null_end_dmawait_profile(); + + +/* end */ }; #endif