2009-07-06 Joel Sherrill <joel.sherrill@OARcorp.com>

* posix/src/psxtransschedparam.c: Restructure to avoid untestable code
	being generated by switch.
This commit is contained in:
Joel Sherrill
2009-07-06 17:59:34 +00:00
parent 69ca55c088
commit 3ba0750fd1
2 changed files with 33 additions and 28 deletions

View File

@@ -1,3 +1,8 @@
2009-07-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* posix/src/psxtransschedparam.c: Restructure to avoid untestable code
being generated by switch.
2009-07-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/src/coremsgsubmit.c: Move impossible case inside an RTEMS_DEBUG

View File

@@ -33,33 +33,33 @@ int _POSIX_Thread_Translate_sched_param(
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
*budget_callout = NULL;
switch ( policy ) {
case SCHED_OTHER:
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
break;
case SCHED_FIFO:
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
break;
case SCHED_RR:
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
break;
case SCHED_SPORADIC:
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;
*budget_callout = _POSIX_Threads_Sporadic_budget_callout;
if ( _Timespec_To_ticks( &param->ss_replenish_period ) <
_Timespec_To_ticks( &param->ss_initial_budget ) )
return EINVAL;
if ( !_POSIX_Priority_Is_valid( param->ss_low_priority ) )
return EINVAL;
break;
default:
return EINVAL;
if ( policy == SCHED_OTHER ) {
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
return 0;
}
return 0;
if ( policy == SCHED_FIFO ) {
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
return 0;
}
if ( policy == SCHED_RR ) {
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
return 0;
}
if ( policy == SCHED_SPORADIC ) {
if ( _Timespec_To_ticks( &param->ss_replenish_period ) <
_Timespec_To_ticks( &param->ss_initial_budget ) )
return EINVAL;
if ( !_POSIX_Priority_Is_valid( param->ss_low_priority ) )
return EINVAL;
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;
*budget_callout = _POSIX_Threads_Sporadic_budget_callout;
return 0;
}
return EINVAL;
}