comparison TaskManager/kernel/ppe/HTask.h @ 518:125a72948e44

....
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 16 Oct 2009 17:57:17 +0900
parents 735f76483bb2
children 5c76db2a07fa
comparison
equal deleted inserted replaced
513:f8d9830d94cd 518:125a72948e44
7 #include "TaskQueueInfo.h" 7 #include "TaskQueueInfo.h"
8 8
9 class TaskManagerImpl; 9 class TaskManagerImpl;
10 class SchedTask; 10 class SchedTask;
11 11
12 typedef void (*PostFunction)(SchedTask *s, void *read, void *write);
13
14 /*! 12 /*!
15 @class 13 @class
16 14
17 @brief 15 @brief
16
17 Host に依存した Task の情報
18 18
19 Cerium の Task で、spawn() でキューに格納されて順次実行される。 19 Cerium の Task で、spawn() でキューに格納されて順次実行される。
20 cpu の指定があれば並列に実行される。 20 cpu の指定があれば並列に実行される。
21 特定の Task を待ち合わせる事が可能。 21 特定の Task を待ち合わせる事が可能。
22 Task の入出力は dma などで copy される。 22 Task の入出力は dma などで copy される。
26 public: 26 public:
27 BASE_NEW_DELETE(HTask); 27 BASE_NEW_DELETE(HTask);
28 28
29 TaskQueueInfo *wait_me; // List of task waiting for me 29 TaskQueueInfo *wait_me; // List of task waiting for me
30 TaskQueueInfo *wait_i; // List of task for which I am waiting 30 TaskQueueInfo *wait_i; // List of task for which I am waiting
31 PostFunction func; 31
32 PostFunction post_func;
32 void *post_arg1; 33 void *post_arg1;
33 void *post_arg2; 34 void *post_arg2;
34 CPU_TYPE cpu_type; 35 CPU_TYPE cpu_type;
35 TaskManagerImpl *mimpl;
36 36
37 HTask *waiter; 37 HTask *waiter;
38 HTask *next; 38 HTask *next;
39 HTask *prev; 39 HTask *prev;
40 40
41 void spawn(void);
42 void wait_for(HTask *); 41 void wait_for(HTask *);
43 void set_cpu(CPU_TYPE type); 42 void set_cpu(CPU_TYPE type);
44 void set_post(PostFunction func, void *read, void *write); 43 void set_post(PostFunction func, void *read, void *write);
45 }; 44 };
46 45