32
|
1 #ifndef INCLUDED_CELL_DMA_MANAGER
|
|
2 #define INCLUDED_CELL_DMA_MANAGER
|
|
3
|
109
|
4 #ifndef INCLUDED_BASE_H_
|
|
5 # include "base.h"
|
|
6 #endif
|
|
7
|
32
|
8 #ifndef INCLUDED_DMA_MANAGER
|
|
9 # include "DmaManager.h"
|
|
10 #endif
|
|
11
|
88
|
12 #include <spu_mfcio.h>
|
|
13
|
242
|
14 #define SPU_PROFILE 1
|
|
15
|
249
|
16 extern unsigned int CellDmaManager::wait_time, CellDmaManager::busy_time;
|
|
17 extern unsigned long long CellDmaManager::global_busy_time, CellDmaManager::global_wait_time;
|
|
18
|
32
|
19 class CellDmaManager : public DmaManager {
|
|
20 public:
|
109
|
21 BASE_NEW_DELETE(CellDmaManager);
|
|
22
|
88
|
23 typedef struct dma_list {
|
|
24 uint32 addr;
|
|
25 uint32 size;
|
|
26 } DmaList, *DmaListPtr;
|
|
27
|
|
28 /* variables */
|
249
|
29
|
88
|
30
|
32
|
31 /* functions */
|
88
|
32 void dma_load(void *buf, uint32 addr, uint32 size, uint32 mask);
|
|
33 void dma_store(void *buf, uint32 addr, uint32 size, uint32 mask);
|
|
34 void dma_wait(uint32 mask) ;
|
242
|
35 void start_dmawait_profile();
|
|
36 void end_dmawait_profile();
|
255
|
37 void show_dma_wait(int cpu);
|
88
|
38
|
|
39 void mail_write(uint32 data);
|
|
40 uint32 mail_read(void);
|
109
|
41 void dma_loadList(ListDataPtr list, void *buff, uint32 mask);
|
|
42 void dma_storeList(ListDataPtr, void *buff, uint32 mask);
|
32
|
43 };
|
|
44
|
|
45 #endif
|