#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 }
|