Mercurial > hg > Members > kono > Cerium
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 |