version 1.11, 2012/07/24 14:06:11
|
version 1.12, 2012/08/02 13:56:19
|
Line 163 schedInit(void ** __restrict data, size_t datlen)
|
Line 163 schedInit(void ** __restrict data, size_t datlen)
|
TAILQ_INIT(&root->root_alarm); |
TAILQ_INIT(&root->root_alarm); |
TAILQ_INIT(&root->root_node); |
TAILQ_INIT(&root->root_node); |
TAILQ_INIT(&root->root_proc); |
TAILQ_INIT(&root->root_proc); |
TAILQ_INIT(&root->root_user); |
|
TAILQ_INIT(&root->root_signal); |
TAILQ_INIT(&root->root_signal); |
|
TAILQ_INIT(&root->root_aio); |
|
TAILQ_INIT(&root->root_lio); |
|
TAILQ_INIT(&root->root_user); |
TAILQ_INIT(&root->root_event); |
TAILQ_INIT(&root->root_event); |
TAILQ_INIT(&root->root_eventlo); |
TAILQ_INIT(&root->root_eventlo); |
TAILQ_INIT(&root->root_suspend); |
TAILQ_INIT(&root->root_suspend); |
Line 223 schedEnd(sched_root_task_t ** __restrict root)
|
Line 225 schedEnd(sched_root_task_t ** __restrict root)
|
schedCancel(task); |
schedCancel(task); |
TAILQ_FOREACH_SAFE(task, &(*root)->root_proc, task_node, tmp) |
TAILQ_FOREACH_SAFE(task, &(*root)->root_proc, task_node, tmp) |
schedCancel(task); |
schedCancel(task); |
TAILQ_FOREACH_SAFE(task, &(*root)->root_user, task_node, tmp) |
|
schedCancel(task); |
|
TAILQ_FOREACH_SAFE(task, &(*root)->root_signal, task_node, tmp) |
TAILQ_FOREACH_SAFE(task, &(*root)->root_signal, task_node, tmp) |
schedCancel(task); |
schedCancel(task); |
|
TAILQ_FOREACH_SAFE(task, &(*root)->root_aio, task_node, tmp) |
|
schedCancel(task); |
|
TAILQ_FOREACH_SAFE(task, &(*root)->root_lio, task_node, tmp) |
|
schedCancel(task); |
|
TAILQ_FOREACH_SAFE(task, &(*root)->root_user, task_node, tmp) |
|
schedCancel(task); |
TAILQ_FOREACH_SAFE(task, &(*root)->root_event, task_node, tmp) |
TAILQ_FOREACH_SAFE(task, &(*root)->root_event, task_node, tmp) |
schedCancel(task); |
schedCancel(task); |
TAILQ_FOREACH_SAFE(task, &(*root)->root_eventlo, task_node, tmp) |
TAILQ_FOREACH_SAFE(task, &(*root)->root_eventlo, task_node, tmp) |
Line 375 schedCancel(sched_task_t * __restrict task)
|
Line 381 schedCancel(sched_task_t * __restrict task)
|
case taskPROC: |
case taskPROC: |
queue = &TASK_ROOT(task)->root_proc; |
queue = &TASK_ROOT(task)->root_proc; |
break; |
break; |
case taskUSER: |
|
queue = &TASK_ROOT(task)->root_user; |
|
break; |
|
case taskSIGNAL: |
case taskSIGNAL: |
queue = &TASK_ROOT(task)->root_signal; |
queue = &TASK_ROOT(task)->root_signal; |
break; |
break; |
|
case taskAIO: |
|
queue = &TASK_ROOT(task)->root_aio; |
|
break; |
|
case taskLIO: |
|
queue = &TASK_ROOT(task)->root_lio; |
|
break; |
|
case taskUSER: |
|
queue = &TASK_ROOT(task)->root_user; |
|
break; |
case taskEVENT: |
case taskEVENT: |
queue = &TASK_ROOT(task)->root_event; |
queue = &TASK_ROOT(task)->root_event; |
break; |
break; |
Line 446 schedCancelby(sched_root_task_t * __restrict root, sch
|
Line 458 schedCancelby(sched_root_task_t * __restrict root, sch
|
return -2; |
return -2; |
if (schedCancelby(root, taskPROC, criteria, param, hook)) |
if (schedCancelby(root, taskPROC, criteria, param, hook)) |
return -2; |
return -2; |
if (schedCancelby(root, taskUSER, criteria, param, hook)) |
|
return -2; |
|
if (schedCancelby(root, taskSIGNAL, criteria, param, hook)) |
if (schedCancelby(root, taskSIGNAL, criteria, param, hook)) |
return -2; |
return -2; |
|
if (schedCancelby(root, taskAIO, criteria, param, hook)) |
|
return -2; |
|
if (schedCancelby(root, taskLIO, criteria, param, hook)) |
|
return -2; |
|
if (schedCancelby(root, taskUSER, criteria, param, hook)) |
|
return -2; |
if (schedCancelby(root, taskEVENT, criteria, param, hook)) |
if (schedCancelby(root, taskEVENT, criteria, param, hook)) |
return -2; |
return -2; |
if (schedCancelby(root, taskEVENTLO, criteria, param, hook)) |
if (schedCancelby(root, taskEVENTLO, criteria, param, hook)) |
Line 480 schedCancelby(sched_root_task_t * __restrict root, sch
|
Line 496 schedCancelby(sched_root_task_t * __restrict root, sch
|
case taskPROC: |
case taskPROC: |
queue = &root->root_proc; |
queue = &root->root_proc; |
break; |
break; |
case taskUSER: |
|
queue = &root->root_user; |
|
break; |
|
case taskSIGNAL: |
case taskSIGNAL: |
queue = &root->root_signal; |
queue = &root->root_signal; |
break; |
break; |
|
case taskAIO: |
|
queue = &root->root_aio; |
|
break; |
|
case taskLIO: |
|
queue = &root->root_lio; |
|
break; |
|
case taskUSER: |
|
queue = &root->root_user; |
|
break; |
case taskEVENT: |
case taskEVENT: |
queue = &root->root_event; |
queue = &root->root_event; |
break; |
break; |
Line 595 schedRun(sched_root_task_t *root, volatile intptr_t *
|
Line 617 schedRun(sched_root_task_t *root, volatile intptr_t *
|
root->root_hooks.hook_exec.condition && |
root->root_hooks.hook_exec.condition && |
root->root_hooks.hook_exec.condition(root, (void*) killState)) { |
root->root_hooks.hook_exec.condition(root, (void*) killState)) { |
if ((task = root->root_hooks.hook_exec.fetch(root, NULL))) |
if ((task = root->root_hooks.hook_exec.fetch(root, NULL))) |
schedCall(task); | root->root_ret = schedCall(task); |
} |
} |
else |
else |
/* trigger scheduler loop */ |
/* trigger scheduler loop */ |
while (!*killState && root && root->root_hooks.hook_exec.fetch) { |
while (!*killState && root && root->root_hooks.hook_exec.fetch) { |
if ((task = root->root_hooks.hook_exec.fetch(root, NULL))) |
if ((task = root->root_hooks.hook_exec.fetch(root, NULL))) |
schedCall(task); | root->root_ret = schedCall(task); |
} |
} |
} else |
} else |
/* infinite scheduler loop */ |
/* infinite scheduler loop */ |
while (root && root->root_hooks.hook_exec.fetch) |
while (root && root->root_hooks.hook_exec.fetch) |
if ((task = root->root_hooks.hook_exec.fetch(root, NULL))) |
if ((task = root->root_hooks.hook_exec.fetch(root, NULL))) |
schedCall(task); | root->root_ret = schedCall(task); |
|
|
return 0; |
return 0; |
} |
} |