annotate TaskManager/kernel/ppe/Task.cc @ 602:1733f3cbfa28

64bit mode try... not worked.
author e075740@nw0740.st.ie.u-ryukyu.ac.jp
date Fri, 06 Nov 2009 21:20:26 +0900
parents 47b61865ea8c
children 42c94f85c779
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
602
1733f3cbfa28 64bit mode try... not worked.
e075740@nw0740.st.ie.u-ryukyu.ac.jp
parents: 567
diff changeset
12 Task::add_inData_t(long 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
602
1733f3cbfa28 64bit mode try... not worked.
e075740@nw0740.st.ie.u-ryukyu.ac.jp
parents: 567
diff changeset
26 Task::add_outData_t(long 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 *
c9127aec8c9c remove duplicate sources in Cell/spe
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 298
diff changeset
35 * 現在は 3 個まで。
c9127aec8c9c remove duplicate sources in Cell/spe
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 298
diff changeset
36 * 本当は、3個以上にすると task->param[] には アドレスが入り
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 */
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
39 int
602
1733f3cbfa28 64bit mode try... not worked.
e075740@nw0740.st.ie.u-ryukyu.ac.jp
parents: 567
diff changeset
40 Task::add_param(long _param)
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
41 {
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
42 if (param_size >= MAX_PARAMS) return -1;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
43
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
44 this->param[param_size++] = _param;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
45 return 0;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
46 }
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
47
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
48 /*
298
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
49 * エラーの時に -1 を返す、ってことするよりは
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
50 * perror みたいにしたほうがわかりやすいかな。
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
51 */
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
52 int
602
1733f3cbfa28 64bit mode try... not worked.
e075740@nw0740.st.ie.u-ryukyu.ac.jp
parents: 567
diff changeset
53 Task::add_data(ListData& list, long addr, int size)
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
54 {
567
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 519
diff changeset
55 if (list.length >= MAX_LIST_DMA_SIZE) return -1;
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
56
567
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 519
diff changeset
57 list.bound[list.length] = list.size;
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
58
298
58fd16298954 from EUC to UTF-8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 181
diff changeset
59 // size でも制限かけるべき?
567
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 519
diff changeset
60 list.size += size;
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
61
567
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 519
diff changeset
62 ListElementPtr elm = &list.element[list.length++];
109
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
63 elm->addr = addr;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
64 elm->size = size;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
65
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
66 return 0;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
67 }