comparison TaskManager/kernel/ppe/Task.h @ 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 0558abba673c
comparison
equal deleted inserted replaced
624:c7b5c99252ad 625:60aa3f241b10
2 #define INCLUDED_TASK 2 #define INCLUDED_TASK
3 3
4 #include "base.h" 4 #include "base.h"
5 #include "types.h" 5 #include "types.h"
6 #include "ListData.h" 6 #include "ListData.h"
7 #include "SimpleTask.h"
7 8
8 #define MAX_PARAMS 8 9 #define MAX_PARAMS 8
9 10
10 class TaskQueue; 11 class Task : public SimpleTask {
11
12 class Task {
13 public: // variables 12 public: // variables
14 13
15 BASE_NEW_DELETE(Task); 14 BASE_NEW_DELETE(Task);
16 15
17 int command; // 4 byte 16 ListData inData __attribute__ ((aligned (DEFAULT_ALIGNMENT)));
18 memaddr self; // 4 byte (or 8byte on 64bit mode) 17 ListData outData __attribute__ ((aligned (DEFAULT_ALIGNMENT)));
19
20 int param_size; // 4 byte
21 memaddr param[MAX_PARAMS]; // 4*MAX_PARAMS byte
22 ListData inData __attribute__ ((aligned (DEFAULT_ALIGNMENT))); // 4 byte 64bit であるべき
23 ListData outData __attribute__ ((aligned (DEFAULT_ALIGNMENT))); // 4 byte 64bit であるべき
24 18
25 public: // functions 19 public: // functions
26 int add_inData_t(memaddr addr, int size); // unsigned int ではなく 64bit 20 int add_inData_t(memaddr addr, int size); // unsigned int ではなく 64bit
27 int add_outData_t(memaddr addr, int size); // unsigned int ではなく 64bit 21 int add_outData_t(memaddr addr, int size); // unsigned int ではなく 64bit
28 int add_data(ListData &list, memaddr addr, int size); 22 int add_data(ListData &list, memaddr addr, int size);
29 int add_param(memaddr param); // obsolete. do not use. 23 int add_param0(memaddr param); // obsolete. do not use.
30 int add_param(int index, memaddr param); 24 int set_param0(int index, memaddr param);
25
26 #define add_param(param) add_param0((memaddr)(param))
27 #define set_param(index,param) set_param0(index, (memaddr) (param))
31 28
32 #define add_inData(addr, size) \ 29 #define add_inData(addr, size) \
33 add_inData_t((memaddr)(addr), (size)); 30 add_inData_t((memaddr)(addr), (size));
34 #define add_outData(addr, size) \ 31 #define add_outData(addr, size) \
35 add_outData_t((memaddr)(addr), (size)); 32 add_outData_t((memaddr)(addr), (size));