version 1.19.12.1, 2013/10/21 13:32:05
|
version 1.23.2.1, 2014/01/27 16:52:56
|
Line 150 schedInit(void ** __restrict data, size_t datlen)
|
Line 150 schedInit(void ** __restrict data, size_t datlen)
|
root->root_miss = MAX_TASK_MISS; |
root->root_miss = MAX_TASK_MISS; |
|
|
/* INFINIT polling period by default */ |
/* INFINIT polling period by default */ |
|
#ifndef KQ_DISABLE |
sched_timespecinf(&root->root_poll); |
sched_timespecinf(&root->root_poll); |
|
#else |
|
sched_timevalinf(&root->root_poll); |
|
#endif |
|
|
#ifdef HAVE_LIBPTHREAD |
#ifdef HAVE_LIBPTHREAD |
for (i = 0; i < taskMAX; i++) |
for (i = 0; i < taskMAX; i++) |
Line 441 schedQuery(sched_task_t * __restrict task)
|
Line 445 schedQuery(sched_task_t * __restrict task)
|
* @type = query from queue type, if =taskMAX query same task from all queues |
* @type = query from queue type, if =taskMAX query same task from all queues |
* @criteria = find task by criteria |
* @criteria = find task by criteria |
* [ CRITERIA_ANY|CRITERIA_CALL|CRITERIA_ARG|CRITERIA_FD|CRITERIA_VAL| |
* [ CRITERIA_ANY|CRITERIA_CALL|CRITERIA_ARG|CRITERIA_FD|CRITERIA_VAL| |
* CRITERIA_ID|CRITERIA_TS|CRITERIA_DATA ] | * CRITERIA_ID|CRITERIA_TS|CRITERIA_DATA|CRITERIA_DATLEN ] |
* @param = search parameter |
* @param = search parameter |
* return: -1 error, 0 found or 1 not found |
* return: -1 error, 0 found or 1 not found |
*/ |
*/ |
Line 449 int
|
Line 453 int
|
schedQueryby(sched_root_task_t * __restrict root, sched_task_type_t type, |
schedQueryby(sched_root_task_t * __restrict root, sched_task_type_t type, |
u_char criteria, void *param) |
u_char criteria, void *param) |
{ |
{ |
sched_task_t *task, *tmp; | sched_task_t *task; |
sched_queue_t *queue; |
sched_queue_t *queue; |
register int flg = 0; |
register int flg = 0; |
|
|
Line 575 schedQueryby(sched_root_task_t * __restrict root, sche
|
Line 579 schedQueryby(sched_root_task_t * __restrict root, sche
|
if (TASK_DATA(task) == param) |
if (TASK_DATA(task) == param) |
return 0; /* found */ |
return 0; /* found */ |
break; |
break; |
|
case CRITERIA_DATLEN: |
|
if (TASK_DATLEN(task) == (size_t) param) |
|
return 0; /* found */ |
|
break; |
default: |
default: |
sched_SetErr(EINVAL, "Invalid parameter criteria %d", |
sched_SetErr(EINVAL, "Invalid parameter criteria %d", |
criteria); |
criteria); |
Line 677 schedCancel(sched_task_t * __restrict task)
|
Line 685 schedCancel(sched_task_t * __restrict task)
|
* @type = cancel from queue type, if =taskMAX cancel same task from all queues |
* @type = cancel from queue type, if =taskMAX cancel same task from all queues |
* @criteria = find task by criteria |
* @criteria = find task by criteria |
* [ CRITERIA_ANY|CRITERIA_CALL|CRITERIA_ARG|CRITERIA_FD|CRITERIA_VAL| |
* [ CRITERIA_ANY|CRITERIA_CALL|CRITERIA_ARG|CRITERIA_FD|CRITERIA_VAL| |
* CRITERIA_ID|CRITERIA_TS|CRITERIA_DATA ] | * CRITERIA_ID|CRITERIA_TS|CRITERIA_DATA|CRITERIA_DATLEN ] |
* @param = search parameter |
* @param = search parameter |
* @hook = custom cleanup hook function, may be NULL |
* @hook = custom cleanup hook function, may be NULL |
* return: -1 error, -2 error in sub-stage cancel execution, -3 error from custom hook or 0 ok |
* return: -1 error, -2 error in sub-stage cancel execution, -3 error from custom hook or 0 ok |
Line 816 schedCancelby(sched_root_task_t * __restrict root, sch
|
Line 824 schedCancelby(sched_root_task_t * __restrict root, sch
|
if (TASK_DATA(task) == param) |
if (TASK_DATA(task) == param) |
flg = 1; |
flg = 1; |
break; |
break; |
|
case CRITERIA_DATLEN: |
|
if (TASK_DATLEN(task) == (size_t) param) |
|
flg = 1; |
|
break; |
default: |
default: |
sched_SetErr(EINVAL, "Invalid parameter criteria %d", criteria); |
sched_SetErr(EINVAL, "Invalid parameter criteria %d", criteria); |
flg = -1; |
flg = -1; |
Line 907 schedPolling(sched_root_task_t * __restrict root, stru
|
Line 919 schedPolling(sched_root_task_t * __restrict root, stru
|
if (!root) |
if (!root) |
return -1; |
return -1; |
|
|
|
#ifndef KQ_DISABLE |
if (tsold) |
if (tsold) |
*tsold = root->root_poll; |
*tsold = root->root_poll; |
|
|
Line 914 schedPolling(sched_root_task_t * __restrict root, stru
|
Line 927 schedPolling(sched_root_task_t * __restrict root, stru
|
sched_timespecinf(&root->root_poll); |
sched_timespecinf(&root->root_poll); |
else |
else |
root->root_poll = *ts; |
root->root_poll = *ts; |
|
#else |
|
if (tsold) |
|
sched_timeval2spec(&root->root_poll, tsold); |
|
|
|
if (!ts) |
|
sched_timevalinf(&root->root_poll); |
|
else |
|
sched_timespec2val(ts, &root->root_poll); |
|
#endif |
|
|
return 0; |
return 0; |
} |
} |
|
|
Line 941 schedTermCondition(sched_root_task_t * __restrict root
|
Line 963 schedTermCondition(sched_root_task_t * __restrict root
|
* |
* |
* @root = root task |
* @root = root task |
* @criteria = find task by criteria |
* @criteria = find task by criteria |
* [CRITERIA_ANY|CRITERIA_ID|CRITERIA_DATA] | * [CRITERIA_ANY|CRITERIA_ID|CRITERIA_VAL|CRITERIA_DATA] |
* @param = search parameter (sched_task_t *task| unsigned long id) |
* @param = search parameter (sched_task_t *task| unsigned long id) |
* return: -1 error or 0 resumed ok |
* return: -1 error or 0 resumed ok |
*/ |
*/ |
Line 964 schedResumeby(sched_root_task_t * __restrict root, u_c
|
Line 986 schedResumeby(sched_root_task_t * __restrict root, u_c
|
flg = 1; |
flg = 1; |
break; |
break; |
case CRITERIA_ID: |
case CRITERIA_ID: |
|
case CRITERIA_VAL: |
if (TASK_VAL(task) == (u_long) param) |
if (TASK_VAL(task) == (u_long) param) |
flg = 1; |
flg = 1; |
break; |
break; |