Mercurial > hg > Members > kono > Cerium
diff TaskManager/Cell/spe/CellDmaManager.cc @ 239:ae6aa53faf70
hey
author | admin@mcbk.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Fri, 29 May 2009 15:34:13 +0900 |
parents | 5cde66c926b4 |
children | f8182c7058b5 |
line wrap: on
line diff
--- a/TaskManager/Cell/spe/CellDmaManager.cc Fri May 29 13:43:52 2009 +0900 +++ b/TaskManager/Cell/spe/CellDmaManager.cc Fri May 29 15:34:13 2009 +0900 @@ -38,11 +38,33 @@ * @param[in] mask Tag for Wait DMA process */ void +CellDmaManager::start_dmawait_profile() +{ + wait_time = readch(SPU_RdDec); + global_busy_time += busy_time - wait_time; + writech(SPU_WrDec, 0xffffffff); +} + +void +CellDmaManager::end_dmawait_profile() +{ + wait_time = readch(SPU_RdDec); + global_wait_time += 0xffffffff - wait_time; + busy_time = wait_time; +} + +void CellDmaManager::dma_wait(uint32 mask) { +#ifdef SPU_PROFILE + start_dmawait_profile(); +#endif mfc_write_tag_mask(1 << mask); mfc_write_tag_update_all(); mfc_read_tag_status(); +#ifdef SPU_PROFILE + end_dmawait_profile(); +#endif } void