annotate TaskManager/kernel/ppe/Task.cc @ 181:a4d17bc4efef

fix
author gongo@localhost.localdomain
date Tue, 23 Dec 2008 15:54:09 +0900
parents 5c194c71eca8
children 58fd16298954
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 /**
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
4 * タスクの入力データを追加する
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
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
12 Task::add_inData_t(unsigned int addr, int size)
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
13 {
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
14 return add_data(this->inData, addr, size);
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 /**
gongo@localhost.localdomain
parents: 109
diff changeset
18 * タスクの出力先を追加する
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
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
26 Task::add_outData_t(unsigned int addr, int size)
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
27 {
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
28 return add_data(this->outData, addr, size);
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 /**
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
32 * エラーの時に -1 を返す、ってことするよりは
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
33 * perror みたいにしたほうがわかりやすいかな。
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
34 */
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
35 int
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
36 Task::add_param(int _param)
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
37 {
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
38 if (param_size >= MAX_PARAMS) return -1;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
39
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
40 this->param[param_size++] = _param;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
41 return 0;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
42 }
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
43
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
44 /*
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
45 * エラーの時に -1 を返す、ってことするよりは
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
46 * perror みたいにしたほうがわかりやすいかな。
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
47 */
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
48 int
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
49 Task::add_data(ListDataPtr list, uint32 addr, int size)
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
50 {
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
51 if (list->length >= MAX_LIST_DMA_SIZE) return -1;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
52
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
53 list->bound[list->length] = list->size;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
54
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
55 // size でも制限かけるべき?
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
56 list->size += size;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
57
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
58 ListElementPtr elm = &list->element[list->length++];
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
59 elm->addr = addr;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
60 elm->size = size;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
61
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
62 return 0;
5c194c71eca8 Cerium cvs version
gongo@gendarme.local
parents:
diff changeset
63 }