607,14 → 607,18 |
#ifdef FSF_DEBUG |
kern_printf("sched policy %d", scheduler_id); |
#endif |
|
if (scheduler_id!=local_scheduler_arg->policy) |
return FSF_ERR_SCHED_POLICY_NOT_COMPATIBLE; |
|
/* Check if thread is already bind */ |
switch (scheduler_id) { |
case FSF_POSIX: |
|
nrt_task_def_arg(*(NRT_TASK_MODEL *)(local_scheduler_arg),arg); |
nrt_task_def_level(*(NRT_TASK_MODEL *)(local_scheduler_arg),local_scheduler_level); |
nrt_task_def_arg(*(NRT_TASK_MODEL *)(local_scheduler_arg->params),arg); |
nrt_task_def_level(*(NRT_TASK_MODEL *)(local_scheduler_arg->params),local_scheduler_level); |
|
*thread = task_create("POSIXSTAR", thread_code, local_scheduler_arg, NULL); |
*thread = task_create("POSIXSTAR", thread_code, local_scheduler_arg->params, NULL); |
if (*thread == NIL) { |
#ifdef FSF_DEBUG |
kern_printf("(FSF:Error creating thread)"); |
627,10 → 631,10 |
break; |
case FSF_EDF: |
|
hard_task_def_arg(*(HARD_TASK_MODEL *)(local_scheduler_arg),arg); |
hard_task_def_level(*(HARD_TASK_MODEL *)(local_scheduler_arg),local_scheduler_level); |
hard_task_def_arg(*(HARD_TASK_MODEL *)(local_scheduler_arg->params),arg); |
hard_task_def_level(*(HARD_TASK_MODEL *)(local_scheduler_arg->params),local_scheduler_level); |
|
*thread = task_create("EDFSTAR", thread_code, local_scheduler_arg, NULL); |
*thread = task_create("EDFSTAR", thread_code, local_scheduler_arg->params, NULL); |
if (*thread == NIL) |
return FSF_ERR_INTERNAL_ERROR; |
|
640,10 → 644,10 |
|
case FSF_RM: |
|
hard_task_def_arg(*(HARD_TASK_MODEL *)(local_scheduler_arg),arg); |
hard_task_def_level(*(HARD_TASK_MODEL *)(local_scheduler_arg),local_scheduler_level); |
hard_task_def_arg(*(HARD_TASK_MODEL *)(local_scheduler_arg->params),arg); |
hard_task_def_level(*(HARD_TASK_MODEL *)(local_scheduler_arg->params),local_scheduler_level); |
|
*thread = task_create("RMSTAR", thread_code, local_scheduler_arg, NULL); |
*thread = task_create("RMSTAR", thread_code, local_scheduler_arg->params, NULL); |
if (*thread == NIL) |
return FSF_ERR_INTERNAL_ERROR; |
|
652,12 → 656,12 |
break; |
case FSF_NONE: |
|
//dummy_task_def_arg(*( DUMMY_TASK_MODEL *)(local_scheduler_arg),arg); |
dummy_task_def_level(*( DUMMY_TASK_MODEL *)(local_scheduler_arg),local_scheduler_level); |
dummy_task_def_arg(*( DUMMY_TASK_MODEL *)(local_scheduler_arg->params),arg); |
dummy_task_def_level(*( DUMMY_TASK_MODEL *)(local_scheduler_arg->params),local_scheduler_level); |
#ifdef FSF_DEBUG |
kern_printf("(None Server create task)"); |
#endif |
*thread = task_create("NONESTAR", thread_code, local_scheduler_arg, NULL); |
*thread = task_create("NONESTAR", thread_code, local_scheduler_arg->params, NULL); |
if (*thread == NIL) |
return FSF_ERR_INTERNAL_ERROR; |
|