annotate TaskManager/Cell/spe/CellScheduler.cc @ 98:f320d1039d51

*** empty log message ***
author akira
date Thu, 28 Feb 2008 21:45:13 +0900
parents 588ab5f0e659
children 5c194c71eca8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
59
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
1 #include <malloc.h>
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
2 #include "CellScheduler.h"
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
3 #include "CellDmaManager.h"
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
4 #include "error.h"
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
5
88
504899860e66 *** empty log message ***
gongo
parents: 70
diff changeset
6 // ユーザプログラムで定義
504899860e66 *** empty log message ***
gongo
parents: 70
diff changeset
7 // なんだけど、それは微妙じゃね?
504899860e66 *** empty log message ***
gongo
parents: 70
diff changeset
8 extern void task_init(void);
98
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
9 void* CellScheduler::tex;
88
504899860e66 *** empty log message ***
gongo
parents: 70
diff changeset
10
59
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
11 void
61
6bc72fde6615 *** empty log message ***
gongo
parents: 59
diff changeset
12 CellScheduler::init_impl(void)
59
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
13 {
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
14 connector = new CellDmaManager;
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
15
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
16 for (int i = 0; i < 2; i++) {
98
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
17 listBuf[i] = (TaskListPtr)memalign(DEFAULT_ALIGNMENT, sizeof(TaskList));
94
588ab5f0e659 *** empty log message ***
gongo
parents: 88
diff changeset
18 //listBuf[i] = (TaskListPtr)memalign(DEFAULT_ALIGNMENT, DMA_MAX_SIZE);
98
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
19 //readBuf[i] = memalign(DEFAULT_ALIGNMENT, DMA_MAX_SIZE);
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
20 //writeBuf[i] = memalign(DEFAULT_ALIGNMENT, DMA_MAX_SIZE);
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
21 readBuf[i] = 0;
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
22 writeBuf[i] = 0;
59
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
23 }
88
504899860e66 *** empty log message ***
gongo
parents: 70
diff changeset
24
504899860e66 *** empty log message ***
gongo
parents: 70
diff changeset
25 task_init();
59
16f9f6251f49 *** empty log message ***
gongo
parents:
diff changeset
26 }
98
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
27
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
28
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
29 void*
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
30 CellScheduler::get_state(int id) {
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
31 return state[id];
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
32 }
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
33
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
34 void*
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
35 CellScheduler::set_state(int id, void *value) {
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
36 void* reply = state[id];
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
37 state[id] = value;
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
38 return reply;
f320d1039d51 *** empty log message ***
akira
parents: 94
diff changeset
39 }