annotate TaskManager/kernel/ppe/Task.cc @ 625:60aa3f241b10

64bit mode worked on Mac OS X.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 16 Nov 2009 10:59:55 +0900
parents f7d78b3c1106
children 8843edf37c0e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
1 #include "Task.h"
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
2
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
3 /**
298
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
4 * タスクの入力データを追加する
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
5 *
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
6 * @param [addr] add input data
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
7 * @param [size] size of data at [addr]
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
8 *
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
9 * @return if ([ret] == 0) ? success : failuer;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
10 */
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
11 int
603
42c94f85c779 long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 602
diff changeset
12 Task::add_inData_t(memaddr addr, int size)
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
13 {
498
cb5ecfc5aaa3 double linked HTaskInfo/HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
14 return add_data(inData, addr, size);
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
15 }
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
16
181
gongo@localhost.localdomain
parents: 109
diff changeset
17 /**
298
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
18 * タスクの出力先を追加する
181
gongo@localhost.localdomain
parents: 109
diff changeset
19 *
gongo@localhost.localdomain
parents: 109
diff changeset
20 * @param[in] addr Address at out data
gongo@localhost.localdomain
parents: 109
diff changeset
21 * @param[in] size Size of data transfer
gongo@localhost.localdomain
parents: 109
diff changeset
22 *
gongo@localhost.localdomain
parents: 109
diff changeset
23 * @return if ([ret] == 0) ? success : failuer;
gongo@localhost.localdomain
parents: 109
diff changeset
24 */
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
25 int
603
42c94f85c779 long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 602
diff changeset
26 Task::add_outData_t(memaddr addr, int size)
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
27 {
498
cb5ecfc5aaa3 double linked HTaskInfo/HTask
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 478
diff changeset
28 return add_data(outData, addr, size);
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
29 }
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
30
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
31 /**
298
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
32 * エラーの時に -1 を返す、ってことするよりは
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
33 * perror みたいにしたほうがわかりやすいかな。
478
c9127aec8c9c remove duplicate sources in Cell/spe
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 298
diff changeset
34 *
615
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
35 * 現在は MAX_PARAMS 個まで。
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
36 * 本当は、MAX_PARAMS個以上にすると task->param[] には アドレスが入り
478
c9127aec8c9c remove duplicate sources in Cell/spe
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 298
diff changeset
37 * そのアドレスは メインメモリでアロケートされた int の集合。
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
38 */
615
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
39
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
40 // こちらのAPIは、受け側と出力側での対応を良く見れない。廃止の方向。
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
41 int
625
60aa3f241b10 64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 615
diff changeset
42 Task::add_param0(memaddr _param)
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
43 {
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
44 if (param_size >= MAX_PARAMS) return -1;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
45
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
46 this->param[param_size++] = _param;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
47 return 0;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
48 }
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
49
615
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
50 int
625
60aa3f241b10 64bit mode worked on Mac OS X.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 615
diff changeset
51 Task::set_param0(int index, memaddr _param)
615
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
52 {
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
53 if (index >= MAX_PARAMS) return -1;
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
54
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
55 this->param[index] = _param;
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
56 return 0;
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
57 }
f7d78b3c1106 First addOutput rendering try failed.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 603
diff changeset
58
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
59 /*
298
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
60 * エラーの時に -1 を返す、ってことするよりは
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
61 * perror みたいにしたほうがわかりやすいかな。
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
62 */
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
63 int
603
42c94f85c779 long -> memaddr (64 or 32)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 602
diff changeset
64 Task::add_data(ListData& list, memaddr addr, int size)
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
65 {
567
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 519
diff changeset
66 if (list.length >= MAX_LIST_DMA_SIZE) return -1;
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
67
567
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 519
diff changeset
68 list.bound[list.length] = list.size;
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
69
298
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
70 // size でも制限かけるべき?
567
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 519
diff changeset
71 list.size += size;
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
72
567
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 519
diff changeset
73 ListElementPtr elm = &list.element[list.length++];
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
74 elm->addr = addr;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
75 elm->size = size;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
76
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
77 return 0;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
78 }