109
|
1 #include "Task.h"
|
|
2
|
|
3 /**
|
298
|
4 * タスクの入力データを追加する
|
109
|
5 *
|
|
6 * @param [addr] add input data
|
|
7 * @param [size] size of data at [addr]
|
|
8 *
|
|
9 * @return if ([ret] == 0) ? success : failuer;
|
|
10 */
|
|
11 int
|
|
12 Task::add_inData_t(unsigned int addr, int size)
|
|
13 {
|
|
14 return add_data(this->inData, addr, size);
|
|
15 }
|
|
16
|
181
|
17 /**
|
298
|
18 * タスクの出力先を追加する
|
181
|
19 *
|
|
20 * @param[in] addr Address at out data
|
|
21 * @param[in] size Size of data transfer
|
|
22 *
|
|
23 * @return if ([ret] == 0) ? success : failuer;
|
|
24 */
|
109
|
25 int
|
|
26 Task::add_outData_t(unsigned int addr, int size)
|
|
27 {
|
|
28 return add_data(this->outData, addr, size);
|
|
29 }
|
|
30
|
|
31 /**
|
298
|
32 * エラーの時に -1 を返す、ってことするよりは
|
|
33 * perror みたいにしたほうがわかりやすいかな。
|
109
|
34 */
|
|
35 int
|
|
36 Task::add_param(int _param)
|
|
37 {
|
|
38 if (param_size >= MAX_PARAMS) return -1;
|
|
39
|
|
40 this->param[param_size++] = _param;
|
|
41 return 0;
|
|
42 }
|
|
43
|
|
44 /*
|
298
|
45 * エラーの時に -1 を返す、ってことするよりは
|
|
46 * perror みたいにしたほうがわかりやすいかな。
|
109
|
47 */
|
|
48 int
|
|
49 Task::add_data(ListDataPtr list, uint32 addr, int size)
|
|
50 {
|
|
51 if (list->length >= MAX_LIST_DMA_SIZE) return -1;
|
|
52
|
|
53 list->bound[list->length] = list->size;
|
|
54
|
298
|
55 // size でも制限かけるべき?
|
109
|
56 list->size += size;
|
|
57
|
|
58 ListElementPtr elm = &list->element[list->length++];
|
|
59 elm->addr = addr;
|
|
60 elm->size = size;
|
|
61
|
|
62 return 0;
|
|
63 }
|