Mercurial > hg > Members > kono > Cerium
view 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 |
line wrap: on
line source
#include "Task.h" /** * タスクの入力データを追加する * * @param [addr] add input data * @param [size] size of data at [addr] * * @return if ([ret] == 0) ? success : failuer; */ int Task::add_inData_t(long addr, int size) { return add_data(inData, addr, size); } /** * タスクの出力先を追加する * * @param[in] addr Address at out data * @param[in] size Size of data transfer * * @return if ([ret] == 0) ? success : failuer; */ int Task::add_outData_t(long addr, int size) { return add_data(outData, addr, size); } /** * エラーの時に -1 を返す、ってことするよりは * perror みたいにしたほうがわかりやすいかな。 * * 現在は 3 個まで。 * 本当は、3個以上にすると task->param[] には アドレスが入り * そのアドレスは メインメモリでアロケートされた int の集合。 */ int Task::add_param(long _param) { if (param_size >= MAX_PARAMS) return -1; this->param[param_size++] = _param; return 0; } /* * エラーの時に -1 を返す、ってことするよりは * perror みたいにしたほうがわかりやすいかな。 */ int Task::add_data(ListData& list, long addr, int size) { if (list.length >= MAX_LIST_DMA_SIZE) return -1; list.bound[list.length] = list.size; // size でも制限かけるべき? list.size += size; ListElementPtr elm = &list.element[list.length++]; elm->addr = addr; elm->size = size; return 0; }