#include "dkcTaskEngine.h"
dkcTaskEngine.cのインクルード依存関係図

マクロ定義 | |
| #define | DKUTIL_C_TASK_ENGINE_C |
関数 | |
| DKC_TASK_ENGINE * | dkcAllocTaskEngine (size_t taskworksize) |
| int | dkcFreeTaskEngine (DKC_TASK_ENGINE **pp) |
| void | Return (DKC_TASK_ENGINE *a, DKC_TASK *b) |
| void | dkcTaskEngineInit (DKC_TASK_ENGINE *p, DKC_TASK *TaskPool[dkcdTASK_NUM], BYTE *TaskWorkPool[dkcdTASK_NUM]) |
| 自分で確保したメモリ領域を割り当てて初期化する場合。 | |
| int | dkcTaskEngineSet (DKC_TASK_ENGINE *p, TASK_COUNT_T prio, DKC_TASK_PROC proc) |
| タスクを設定します。使用済みのプライオリティーの場合等で設定できなかった場合はedk_FAILEDを返します。 | |
| int | dkcTaskEngineKill (DKC_TASK_ENGINE *p, TASK_COUNT_T prio) |
| タスクを削除します。 | |
| int | dkcTaskEngineIteration (DKC_TASK_ENGINE *p) |
| タスクエンジンに登録されているタスクをイテレーションします。 | |
| BOOL | dkcTaskEngineEmpty (DKC_TASK_ENGINE *p, TASK_COUNT_T prio) |
| prioのタスクは空いているかどうか≠ネら空いている | |
dkcTaskEngine.c で定義されています。
|
|
dkcTaskEngine.c の 8 行で定義されています。 |
|
|
dkcTaskEngine.c の 11 行で定義されています。 参照先 BYTE, DKC_TASK, DKC_TASK_ENGINE, dkcAllocate(), dkcdTASK_NUM, dkcFree(), dkcTaskEngineInit(), と NULL.
00011 {
00012 BYTE *temp = NULL;
00013
00014 DKC_TASK_ENGINE *p = NULL;
00015 DKC_TASK *tp = NULL;
00016
00017 if(0==taskworksize){
00018 return NULL;
00019 }
00020
00021
00022
00023 p = dkcAllocate(sizeof(DKC_TASK_ENGINE));
00024 if(NULL==p){
00025 return NULL;
00026 }
00027
00028 temp = dkcAllocate(taskworksize * dkcdTASK_NUM);
00029 if(NULL==temp){
00030 goto Error;
00031 }
00032 tp = dkcAllocate(sizeof(DKC_TASK) * dkcdTASK_NUM);
00033 if(NULL==tp){
00034 goto Error;
00035 }
00036
00037
00038
00039 dkcTaskEngineInit(p,&tp,&temp);
00040
00041 return p;
00042
00043
00044 Error:
00045 //dkcFree((void **)&tp);
00046 dkcFree((void **)&temp);
00047 dkcFree((void **)&p);
00048
00049 return NULL;
00050 }
|
|
|
dkcTaskEngine.c の 52 行で定義されています。 参照先 DKC_TASK_ENGINE, と dkcFree().
|
|
||||||||||||
|
prioのタスクは空いているかどうか≠ネら空いている
dkcTaskEngine.c の 125 行で定義されています。 参照先 BOOL, DKC_TASK, DKC_TASK_ENGINE, DKC_TASK_PROC, dkc_TaskEngine::mTaskPool, dkc_Task::proc, Return(), と TASK_COUNT_T.
|
|
||||||||||||||||
|
自分で確保したメモリ領域を割り当てて初期化する場合。
dkcTaskEngine.c の 63 行で定義されています。 参照先 BYTE, DKC_TASK, DKC_TASK_ENGINE, dkcdTASK_NUM, dkc_TaskEngine::mNowPriority, dkc_TaskEngine::mTaskPool, dkc_TaskEngine::mTaskWorkPool, dkc_TaskEngine::mTaskWorkSize, と Return(). 参照元 dkcAllocTaskEngine().
00063 {
00064 int i;
00065 size_t taskworksize = p->mTaskWorkSize;
00066 p->mNowPriority = 0;
00067
00068 for(i=0;i<dkcdTASK_NUM;i++){
00069 p->mTaskWorkPool[i] = TaskWorkPool[i * taskworksize];
00070
00071 TaskPool[i]->proc = Return;
00072 TaskPool[i]->work = p->mTaskWorkPool[i];
00073
00074 p->mTaskPool[i] = (BYTE *)TaskPool[i];
00075 }
00076 }
|
|
|
タスクエンジンに登録されているタスクをイテレーションします。
dkcTaskEngine.c の 104 行で定義されています。 参照先 DKC_TASK, DKC_TASK_ENGINE, DKC_TASK_PROC, dkcdTASK_NUM, dkc_TaskEngine::mNowPriority, dkc_TaskEngine::mTaskPool, dkc_Task::proc, と TASK_COUNT_T.
00104 {
00105 unsigned int i;
00106 //一時変数
00107 DKC_TASK_PROC proc;
00108 DKC_TASK *task_p;
00109
00110 for(i=0;i<dkcdTASK_NUM;i++){
00111 task_p = (DKC_TASK *)(p->mTaskPool[i]);
00112 proc = task_p->proc;
00113 p->mNowPriority = (TASK_COUNT_T)i;
00114
00115 //呼び出す。
00116 proc(p,task_p);
00117
00118 }
00119 return edk_SUCCEEDED;
00120
00121 }
|
|
||||||||||||
|
タスクを削除します。
dkcTaskEngine.c の 95 行で定義されています。 参照先 DKC_TASK, DKC_TASK_ENGINE, dkc_TaskEngine::mTaskPool, dkc_Task::proc, Return(), と TASK_COUNT_T.
|
|
||||||||||||||||
|
タスクを設定します。使用済みのプライオリティーの場合等で設定できなかった場合はedk_FAILEDを返します。
dkcTaskEngine.c の 79 行で定義されています。 参照先 DKC_TASK, DKC_TASK_ENGINE, DKC_TASK_PROC, dkc_TaskEngine::mTaskPool, dkc_Task::proc, Return(), と TASK_COUNT_T.
|
|
||||||||||||
|
dkcTaskEngine.c の 58 行で定義されています。 参照先 DKC_TASK, と DKC_TASK_ENGINE. 参照元 dkcTaskEngineEmpty(), dkcTaskEngineInit(), dkcTaskEngineKill(), と dkcTaskEngineSet().
00059 {
00060 return;
00061 }
|
1.3.6