3
|
1 #ifndef INCLUDED_SPE_MANAGER
|
|
2 #define INCLUDED_SPE_MANAGER
|
|
3
|
|
4 #ifndef INCLUDED_TASK
|
|
5 # include "task.h"
|
|
6 #endif
|
|
7
|
|
8 #ifndef INCLUDED_DMA_MANAGER
|
|
9 # include "DmaManager.h"
|
|
10 #endif
|
|
11
|
|
12 class SpeTaskBase;
|
|
13 class SpeManager;
|
|
14
|
|
15 class SpeTaskBase {
|
|
16 public:
|
|
17 /* constructor */
|
|
18 SpeTaskBase(void) {}
|
|
19 virtual ~SpeTaskBase(void) {}
|
|
20
|
|
21 /* variables */
|
|
22
|
|
23 // noaction in default
|
|
24 virtual void load(void) {}
|
|
25 virtual void read(void) {}
|
|
26 virtual void exec(void) {}
|
|
27 virtual void write(void) {}
|
|
28
|
|
29 /* functions */
|
|
30 virtual SpeTaskBase* next(SpeManager *, SpeTaskBase *) = 0;
|
|
31 };
|
|
32
|
|
33
|
|
34 class SpeManager {
|
|
35 public:
|
|
36 SpeManager(void);
|
|
37
|
|
38 /* variables */
|
|
39 int listBufFlg;
|
|
40 int readBufFlg;
|
|
41 int writeBufFlg;
|
|
42 TaskListPtr listBuf[2];
|
|
43 void *readBuf[2];
|
|
44 void *writeBuf[2];
|
|
45
|
|
46 DmaManager* connector;
|
|
47
|
|
48 SpeTaskBase* task1;
|
|
49 SpeTaskBase* task2;
|
|
50 SpeTaskBase* task3;
|
|
51
|
|
52 /* functions */
|
|
53 void init(void);
|
|
54 void set_connect(DmaManager*);
|
|
55 void run(void);
|
|
56 void finish(void);
|
|
57
|
|
58 TaskListPtr get_curListBuf(void);
|
|
59 void* get_curReadBuf(void);
|
|
60 void* get_curWriteBuf(void);
|
|
61 };
|
|
62
|
|
63 #endif
|