32
|
1 #ifndef INCLUDED_CELL_DMA_MANAGER
|
|
2 #define INCLUDED_CELL_DMA_MANAGER
|
|
3
|
|
4 #ifndef INCLUDED_DMA_MANAGER
|
|
5 # include "DmaManager.h"
|
|
6 #endif
|
|
7
|
88
|
8 #include <spu_mfcio.h>
|
|
9
|
32
|
10 class CellDmaManager : public DmaManager {
|
|
11 public:
|
88
|
12 typedef struct dma_list {
|
|
13 uint32 addr;
|
|
14 uint32 size;
|
|
15 } DmaList, *DmaListPtr;
|
|
16
|
|
17 /* variables */
|
|
18 void **_buffList[2];
|
|
19 void *_buff[2];
|
|
20 int buff_index[2];
|
|
21 int buff_flag;
|
|
22 DmaList dmaQueue[2][64];
|
|
23 mfc_list_element_t *mfcList[2];
|
|
24
|
32
|
25 /* functions */
|
88
|
26 void dma_load(void *buf, uint32 addr, uint32 size, uint32 mask);
|
|
27 void dma_store(void *buf, uint32 addr, uint32 size, uint32 mask);
|
|
28 void dma_wait(uint32 mask) ;
|
|
29
|
|
30 void mail_write(uint32 data);
|
|
31 uint32 mail_read(void);
|
|
32
|
|
33 void dmaList_set(uint32 address, uint32 size);
|
|
34 void** dmaList_load(uint32 mask);
|
32
|
35 };
|
|
36
|
|
37 #endif
|